2011-01-19 10 views
1

例:なぜ、floatがclear divに指定されているとき、その親コン​​テナの境界線がそれを認識しないのですか?

Htmlの

<div id = parent> 
     <div class = "clearDiv"></div> 
</div> 

CSS:指定float: leftプロパティを持つ

div.clearDiv 
{ 
     width:  1000px; 
     height:  1px; 
     float:  left; 
     clear:  both; 
     visibility: hidden; 
} 

、その親のdivがそれを認識していないので、親のdiv #parentは、その高さを持っていますかなりゼロです、なぜですか?

+1

'float'を使うと、フローティング要素を通常のページフローから引き出します。要素の祖先/継承関係は残っていますが、包含関係を切り離します。 –

答えて

3

overflow:auto;コンテナエレメントにCSSスタイルを設定します。

親コンテナには、親密な情報がありません。彼らは兄弟(または他の浮遊要素)とやりとりするだけです。したがって、はfloatです。彼らは何でも、どこでも、どんなサイズでもかまいません。コンテナは浮動しているので気にしません。

+0

実際には、親への過不足なしに、より良いアプローチはありませんか?ウィンドウが小さくなるとスクロールバーに親コンテナを作成することになります...私は望みません。 – dave

+0

親要素にスクロールバーが表示されないようにするには、常にオーバーフローを 'visible'に設定することができます。しかし、私はまだ、「オート」がそのトリックをうまくやっていると思っています。コンテンツがウィンドウのビューポートより大きい場合、ドキュメント全体がスクロールバーを取得し、divは取得しません。 –

関連する問題