記事のリストがあるとします。一部の画像は右に浮かんでいてテキストがほとんどないため、画像は記事の外に浮かんで次の記事に流れ込み、混乱します。
記事内の要素が記事の外に浮かないようにするための正しい/好ましい/最良の方法は何ですか?
私はそれがoverflow:hidden
うまくいくことを知っていますが、これは正しい使用法ですか?それとも、偶然に私がやりたいことをするのはたまたまですか?
それを行うには3つの方法があります。
あなたはoverflow:hidden
それをするためのきれいな方法であることができます。
短所:コンテナに定義された寸法がある場合はコンテンツをクリップし、内部要素からシャドウをクリップします。
div <-- style="overflow:hidden"
div <-- floating children
div
div <-- style="overflow:hidden"
div <-- floating children
div
空白の要素を含めることができます。通常は、<div>
フロートのあるコンテナの後にあります。これをでスタイリングしclear:both
ます。
短所:DOMに「デッドエレメント」がある。
div
div <-- floating children
div
div <-- style="clear:both"
div
div <-- floating children
div
コンテナに「clearfix」クラスを:after
追加し、疑似クラスを使用して「clearingdynamicdot/space」を追加できます。基本的には2番目のように機能しますが、を使用:after
して「clear:both」のスペースを挿入します。この記事ではそれについて説明します。
短所:「classitis」(クラスの乱用):after
は、IE7以前ではサポートされていないため、CSSハックが使用されます
div <-- :after
div <-- floating children
div
" " <-- style="clear:both"
div <-- :after
div <-- floating children
div
3つのうちどちらでも使用でき、うまく機能します。私は通常1を使用します。コンテナに影がある場合、またはコンテナの寸法が固定されている場合は、3を使用します。方法3は、:after
どちらが新しいかによって異なります。このクリアフィックスをサポートするには、記事で説明されている古いCSSハックを使用します。
記事の要素ごとに、を追加しclear: both;
ます。これにより、次の記事で画像が「漏れ」ないようにするだけでなく、画像が途切れないようにすることができます。
オーバーフロー:非表示またはオーバーフロー:自動は、フロートリストアイテムを保持するナビゲーションバーや、フロートボックスの束があるアクション呼び出し領域などの小さな包含要素のフロートをクリアするための許容可能なソリューションです。
また、このリンクでは、overflow:hiddenを使用してデモでクリアする問題についても説明しています。