「float」で親要素の高さがなくなってしまったときは親要素に「float」【CSS】
1年以上前の記事です。内容が古い可能性があります。
HTML・CSSコーディングで2カラム、3カラムを実装するときに最も使用頻度の高いCSSプロパティはfloatでしょうね。
左のボックス(div等)にfloat:left、右のボックス(div等)にfloat:rightとすることで2カラムを作ることができます。
(それぞれ、widthの設定も忘れずに) 
ただ、これを囲む親要素のバックグラウンドに色を入れたいときなどにうまくいかないことがあります。
たとえばこんな例です。
簡単に2カラムのレイアウトを作ってみました。
□ HTML
<div id=”header”> ヘッダー </div>
<div id=”main”>
<div id=”nav”> ナビ </div>
<div id=”cont”> コンテンツ </div>
</div>
<div id=”footer”> フッター </div>
</div>
□ CSS
margin: auto;
width: 800px;
background-color: gray;
}
#main {
background-color: yellow;
}
#nav {
float: left;
width: 250px;
height: 300px;
background-color: pink;
}
#cont {
float: right;
width: 550px;
height: 500px;
background-color: skyblue;
}
#footer {
clear: both;
}
ここで実は反映されていない色(ボックス)があるのに気づくと思います。
それぞれfloatで左右に振ったnavとcontentを囲んだmainです。
ここに、バックグランドとしてyellowを設定していますが、これが出てきていません。
実は、floatを指定したボックスはその上のボックスからは無いものと判断されてしまいます。
今回の場合はmain内にnavとcontentがあって、その両方ともにfloatの設定をしているので、
mainの中が何もないと判断されて高さが0になってしまっているのです。
これを解決させる方法は3つ考えられます。
まず、mainに高さ(height)を設定する方法。
これが理論的には一番わかり易いですが内包されているnavやcontentの高さが変わってきたときにそれに合わせてmainの高さも設定しなければならないのがちょっと良くありません。
そして、mainにoverflow:hiddenと設定する方法。
これはoverflowプロパティの特性を利用したなかなか便利な方法。
でも、overflowというプロパティがなくなってしまうと困る(まあ、そんなことはないと思いますが。)
□ とっても使えるoverflowプロパティ。その使い方色々。 – CSS HappyLife
最後に、main自体にfloatを指定する方法。
これが個人的には一番オススメです。
理論的にも分かりやすいしfloatで生まれた問題はfloatで解決させるに限ります。
つまり、親要素自体にも「float:left」(もしくはfloat:right)と指定してあげればOK。
実は別記事で解説しますがpositon:absoluteにおける問題点も親要素にpositionを設定することで解決します。
これと合わせて、覚えておくと分かりやすい。
ということで、CSSを以下のように書けば解決します。
□ CSS
margin: auto;
width: 800px;
background-color: gray;
}
#main {
float: left;
background-color: yellow;
}
#nav {
float: left;
width: 250px;
height: 300px;
background-color: pink;
}
#cont {
float: right;
width: 550px;
height: 500px;
background-color: skyblue;
}
#footer {
clear: both;
}
アドセンス広告メイン
関連記事
-  
              
- 
      リンクファームらしきサイト1年以上前の記事です。内容が古い可能性があります。↓ 
-  
              
- 
      最近PVが伸びないのはGunosy(グノシー)対策してないから? Gunosy(グノシー)にブログを掲載させるコツ1年以上前の記事です。内容が古い可能性があります。最近、PVが頭打ち。それどころ … 
-  
              
- 
      最もシンプルなオリジナルのリセットCSSを考えてみた【Webデザイン】1年以上前の記事です。内容が古い可能性があります。そろそろHTML5が正式に勧告 … 
-  
              
- 
      MacOSX標準の「Mail」はアカウントを消すことで送受信したメールも全て消える1年以上前の記事です。内容が古い可能性があります。久々に「ぬおぁ~」な行為をして … 
-  
              
- 
      セキュアなままでニンテンドーDSのWi-Fi通信を可能に【前編】1年以上前の記事です。内容が古い可能性があります。現在、僕の自宅のワイヤレスLA … 
-  
              
- 
      自分専用のハッシュタグでToDo管理 【Twitter(ツイッター)】1年以上前の記事です。内容が古い可能性があります。先日、ToDoリストをツイッタ … 
-  
              
- 
      料金差がある場合の割り勘(ワリカン)方法1年以上前の記事です。内容が古い可能性があります。料金に差がある場合に比較的簡単 … 
-  
              
- 
      いまどきの履歴書サイズは「B4二つ折り」ではなく「A4」1年以上前の記事です。内容が古い可能性があります。訳あって、履歴書などを書いてい … 
-  
              
- 
      意外と知らないネットスラング「スルー力」とは1年以上前の記事です。内容が古い可能性があります。先日、何かの折に「リアルでもス … 
-  
              
- 
      TV見ません。雑誌読みません。1年以上前の記事です。内容が古い可能性があります。最近、テレビを見なくなった。そ … 





 
             
             
             
             
             
             
             
             
            





