2009-11-18 5 views
10

私は学校 "Math Relay"のためのウェブサイトを作成しています。私の "コンテナ" divに浮動要素が含まれていないのはなぜですか?

コンテナ内に「コンテナ」div(白い背景)、次にトップバー、左バー、右バーのdivがあります。

left-barとright-barは両方とも "Container"の内側に浮かんでいます。

ただし、下の画像を見ると、右のバーの下に灰色の背景が表示されていることがわかります。 「コンテナ」に真上、左、右の両方のバーが含まれている場合は、コンテナの背景にスルーを表示し、ボトムにはすべて白い色の均一なレベルにする必要があります。

代わりに、コンテナには左のバーが完全に含まれていないように見えるため、実際の身体の背景が右のバーの下に表示されます。ページhere

#container { 
    margin: 0 auto; 
    width: 750px; 
    background-color: #ffffff; } 

#top-panel { 
    background-color: #000000; 
    text-align: left; 
    width: 100%; 
    height: 88px; 
    float: left; } 

#left-panel { 
    clear: left; 
    text-align: center; 
    background-color: #ffffff; 
    border-right: 1px dashed #000000; 
    float: left; 
    width: 250; } 

#right-panel { 
    background-color: #ffffff; 
    float: left; 
    width: 499; } 

リンク:

alt text

は、ここに私のCSSです。

"コンテナ"に実際にdivが含まれるようにするにはどうすればいいですか?灰色の背景が右パネルの下に表示されず、下に段差がありますか?

答えて

26

両方のパネルがフローティングであるため、ページの通常の流れから取り除かれます。コンテナをカプセル化するには、フロートをクリアする必要があります。私がするのは、brのためのクラスを明確にすることです:

.clear { 
    clear:both; 
    line-height:0; 
} 

このように、それはスペースを取らず、はっきりしています。コンテナ部門の2つのdivの下に置いてください。

<br class="clear" /> 

2

封じ込めを強制するものは何もありません。最後の要素に透明を指定して、味覚を強制することができます。一般的なハックはclear:bothすなわちで追加のブロッキング要素を追加することです:<div style="clear:both"></div>

8
overflow: auto 

はそれを修正する必要があります。

+0

これはIE7では機能しません。 ChromeやFFで動作します。 –

+0

IE6/7でも動作させるには 'zoom:1'を追加してください。 – mercator

2

clearfixという問題に対処するためのCSSのみの方法があります。それはあなたが欲しいのdiv要素に選択的に適用するクラスとしてそれを使用するのが最善です:あなたの特定のマークアップのために

.clearfix { 
    content: "."; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden; 
} 

、以下のCSSは行います:http://www.positioniseverything.net/easyclearing.html

+0

:afterはIE6の最も顕著な例であるすべてのブラウザでサポートされていないため、全く動作しません。 –

11
overflow:hidden; height:100%; <-- for ie 

#left-panel:after, 
#right-panel:after { 
    content: "."; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden; 
} 

リファレンス

コンテナでそれを行います。

+4

+1:CSSによって作成された問題(浮動)は、CSSによって解決されるべきです... –

+1

オーバーフロー:隠されています。 100%の高さを追加すると実際にdivsの高さが画面よりも大きい(IE10でテストされた)コンテンツを含んでいれば、実際にdivsの高さが制限されます – Sam

+0

なぜ 'overflow:hidden 'はこれを修正しますか? – YoTengoUnLCD

関連する問題