重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

当方webデザイナーを目指し勉強中です。
サイトデザインをしてコーディングをしていてつまずいてしまったため質問をさせていただきました。

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

「【webデザイン】floatについて悩ん」の質問画像

A 回答 (2件)

floatでも普通にレイアウトできると思いますが、


右のコンテンツ部分を一つのdivで囲んで、widthをちゃんと設定していれば問題ないと思います。
floatで失敗するのはwidthを入力していないから、という理由が結構多いので。

それと、position:relative;をかけたボックスの位置をtopやleftなんかで動かすと、
ボックスの「元あった位置」が常にレイアウトのネックになるので、
位置を変更するボックスはposition:absolute;を使う事をお勧めします。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/04/02 10:14

私は、そのようなときに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>
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/04/02 10:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!