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

No.2ベストアンサー
- 回答日時:
floatでも普通にレイアウトできると思いますが、
右のコンテンツ部分を一つのdivで囲んで、widthをちゃんと設定していれば問題ないと思います。
floatで失敗するのはwidthを入力していないから、という理由が結構多いので。
それと、position:relative;をかけたボックスの位置をtopやleftなんかで動かすと、
ボックスの「元あった位置」が常にレイアウトのネックになるので、
位置を変更するボックスはposition:absolute;を使う事をお勧めします。
widthの入力を確かに見落としておりました、ありがとうございます!
位置変更の際には今後position:absolute;を使うようにしたいと思います。
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>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<!-- #BeginLibraryItemとは
-
1時間30分を簡単に表したいで...
-
cssのdivについて
-
h1に自分自身へのリンクを張...
-
webページの見出し(h要素)と...
-
ブートストラップを使ったサイ...
-
インラインフレームのページ内...
-
HTMLの要素の間が空いてしまう...
-
html5 と xhtml はどちらがいい?
-
【CSS】positionの親子関係につ...
-
classとIDの違い
-
idとclassの指定方法
-
CSS min-height の使いどころ
-
ブラウザの表示幅で100%指定が...
-
含む含まないという概念自体の...
-
idの中のid指定
-
スタイルシートで、id属性の中...
-
<ul><li></li></ul>にするメリ...
-
li タグ全体をリンクに。
-
<form <input type="text"の枠...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
html の divとtable の役割
-
複数のボタンを等間隔に、かつ...
-
1時間30分を簡単に表したいで...
-
HTML属性での「""」 「''」違い
-
min-heightとheightの違いについて
-
スペースを使わず文字位置を揃...
-
ヘッダーとフッターだけ背景を...
-
セクションをdivで囲むと見出し...
-
<!-- #BeginLibraryItemとは
-
【html&css】太さの違う2本線の...
-
ヘッダーを左右に二分割する方...
-
HTMLのバリデーション
-
<div id="container">の使いか...
-
フッタの背景画像をリピートxで...
-
HP製作を仕事にしたく相談です。
-
グリッドレイアウトで"auto-fit...
-
</div>は、どのdivに対しての終...
-
html5でheader,footerこみのwra...
-
h1を親要素の縦中央、画像の横...
おすすめ情報