• ベストアンサー

【webデザイン】floatについて悩んでおります

当方webデザイナーを目指し勉強中です。 サイトデザインをしてコーディングをしていてつまずいてしまったため質問をさせていただきました。 添付した画像の一番左側のようなレイアウトにしようとおもうのですが、思うようにいきません。 floatを使って横に流し込む際に、おかしなところでボックスの改行(?)が起こってしまいます。 おそらくナビゲーションの配置をする際にposition:relative;を用いて場所の変更を行う前の位置で改行がかかっているのだと思うのですが、このような場合はどのようにCSSにて記述するのがスマートなのでしょうか? よろしければお答えをお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tkmojo
  • ベストアンサー率50% (105/207)
回答No.2

floatでも普通にレイアウトできると思いますが、 右のコンテンツ部分を一つのdivで囲んで、widthをちゃんと設定していれば問題ないと思います。 floatで失敗するのはwidthを入力していないから、という理由が結構多いので。 それと、position:relative;をかけたボックスの位置をtopやleftなんかで動かすと、 ボックスの「元あった位置」が常にレイアウトのネックになるので、 位置を変更するボックスはposition:absolute;を使う事をお勧めします。

irai0712
質問者

お礼

widthの入力を確かに見落としておりました、ありがとうございます! 位置変更の際には今後position:absolute;を使うようにしたいと思います。

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

私は、そのようなときにfloatは使いません。 1) floatするブロックを前に書く必要があり、HTMLの文書構造が制約を受ける。 2) それにより、デザインの自由度が減る。右にあるものを左に、上に、下に・・と変更できない。 3) 本文中でfloat,clearが自由に使えない。 下記はHTML5ですが、HTML4.01,XHTML1.0/1.1のときは<div class="header">に置き換える。 480px以上のディスプレイで横スクロールなしでページ中央 header navはページトップとかheaderのどこにでも持っていける。 section navもsection内なら・・ section内でfloat,clearが自在に使えます。 ★タブは_に置換してあるので戻すこと。 <!doctype html> <html> <head> _<meta charset="utf-8"> _<title>サンプル</title> _<meta name="description" content=""> _<meta name="author" content="IRUKA"> <style media="screen"> <!-- html,body{margin:0;padding:0;} h1,h2,h3,p{margin:0;line-height:1.6em;} header,section,footer{width:90%;min-width:480px;max-width:1000px;margin:0 auto;position:relative;} section{position:relative;min-height:400px;} section h2,section section{margin:0 20%;width:auto;} section section{clear:both;min-height:100px;} nav{position:absolute;z-index:10;width:20%;} header nav{top:100%;left:0;height:400px;} section nav{top:0;right:0;height:100%;} section aside{width:200px;font-size:0.9em;float:left;border:solid 1px gray;padding:5px 10px;margin:5px;} section+section aside{float:right;} body{background-color:gray;} header{background-color:aqua;} section{background-color:lime;} section section,section h2{background-color:white;} nav{background-color:silver;} footer{background-color:fuchsia;} --> </style> </head> <body> _<header> __<h1 id="title">Your title</h1> __<nav> ___<ul> ____<li><a href="#">Some</a></li> ____<li><a href="#">navigation</a></li> ____<li><a href="#">links</a></li> ___</ul> __</nav> _</header> _<section> __<h2>A smaller heading</h2> __<section> ___<h3>章見出し</h3> ___<p>段落</p> ___<aside> ____<h3>Something aside</h3> ____<p>補足記事</p> ____<p>補足記事</p> ___</aside> ___<p>段落</p> ___<p>段落</p> ___<p>段落</p> __</section> __<section> ___<h3>章見出し</h3> ___<aside> ____<h3>Something aside</h3> ____<p>補足記事</p> ____<p>補足記事</p> ___</aside> ___<p>段落</p> ___<p>段落</p> ___<p>段落</p> ___<p>段落</p> __</section> __<nav> ___<ul> ____<li><a href="#">Some</a></li> ____<li><a href="#">navigation</a></li> ____<li><a href="#">links</a></li> ___</ul> __</nav> _</section> _<footer> __<h3>A nice footer</h3> _</footer> </body> </html>

irai0712
質問者

お礼

タグやCSSまで添付していただいての回答をありがとうございました、今後是非参考にさせていただきます!

関連するQ&A

専門家に質問してみよう