これは、要素をフロートするたびに、そのコンテナーの自動高さが失われるために発生します。それを防ぎたい場合は、次のことができます。
コンテナに特定の高さを設定する
元:
<div class="my-container" style="height: 100px">
<div style="float: left;">
Some very interesting text right here.
</div>
<div style="float: left;">
Don't read this and you'll be doomed.
</div>
</div>
特定の高さを設定した場合、コンテンツがコンテナーより高くなっても div のサイズは変更されないことに注意してください。
style="clear: both"
浮動要素の直後にdiv を追加します
元:
<div class="my-container">
<div style="float: left;">
Some very interesting text right here.
</div>
<div style="float: left;">
Don't read this and you'll be doomed.
</div>
<div style="clear:both"></div>
</div>
ええ、それは動作します。しかし、そんなことをするのは初心者だけです。それはエレガントではなく、コードを汚染します。
overflow: hidden
親コンテナに設定
<div class="my-container" style="overflow: hidden">
<div style="float: left;">
Some very interesting text right here.
</div>
<div style="float: left;">
Don't read this and you'll be doomed.
</div>
</div>
これは素晴らしいですが、たとえば、絶対に配置されたものを親 div の外に移動する必要がある場合は危険です。あなたは不愉快な驚きを感じるでしょう。
ClearFix ハックを使用します。
これが私のやり方です。実装が簡単で、魅力のように機能します。このリンクをチェックしてください: http://www.positioniseeverything.net/easyclearing.html ;
(私のように) 有効な CSS がないことを気にする場合は、たとえば、別のスタイルシートと条件付きコメントを使用して IE ブラウザーをターゲットにすることができます。
この件に関するその他のリソース: