フロートの問題が発生し、コンテナの外にフロートします。
この問題でクリアを使用できることは知っていますが、クリアが何をしているのか、問題を解決するためにどこに行けばよいのか、よくわかりません。
使用できるように明確なクラスを作成しました<br class="clear" />
問題のあるライブサイトはここで見ることができます:
フロートの問題が発生し、コンテナの外にフロートします。
この問題でクリアを使用できることは知っていますが、クリアが何をしているのか、問題を解決するためにどこに行けばよいのか、よくわかりません。
使用できるように明確なクラスを作成しました<br class="clear" />
問題のあるライブサイトはここで見ることができます:
float
「横に移動し、この要素に続くコンテンツを横に表示する」という意味です
clear
「私の前に何かが浮かんでいるなら、その下にとどまる」という意味です。
clear
フローティングコンテンツの後に、コンテナ内に表示される高さゼロの要素を設定することで、コンテナをフローティングコンテンツの周囲に展開させることができますがclear: both
、この問題を解決するための最もクリーンなアプローチではありません。
overflow: hidden
代わりにコンテナに設定してください。これにより、新しいブロックフォーマットコンテキストが確立され、フロートされた子を含むようにコンテナが拡張されます。
クリアは、他の人が侵入しているdivで使用されます。したがって、div1の一部がdiv2に入り、div 1がdiv2の左側にある場合は、div2にclear:leftを挿入します。
問題を修正するには、にを追加overflow:hidden
し#content
ます。
#content {
margin-top: 60px;
text-align: center;
overflow: hidden;
}
これは唯一の可能な解決策です。ヒントと同じように:http ://www.quirksmode.org/css/clearing.html
あなたの質問へ:フロートをクリアするためにドキュメントにマークアップを追加することはお勧めしません。それは悪い習慣です!非常に一般的で安定したソリューションは、NicolasGallagherによって導入されたマイクロクリアフィックスハックです。クラスを1つ追加するだけで、#content
準備が整います。
最後のfloat要素の後のclear: both
ブロックレベル要素(のような)に適用する必要があります。div
このようにして、クリアされた要素はすべてのフロート要素の下に配置され、コンテナの下部を押し下げてそれらを覆います。