従来はfloatをクリアする際に必ずクリアしたい要素の後に
<div style="clear:both;"></div>
を追加するか、brタグ内に記述することで問題を解決していましたが、これでは意味不明なタグが追加されてしまいますので以下を使用して実装します。 after 疑似クラス、複数のブラウザと互換性あり
.clearfix:after{ content:""; display:block; height:0; clear:both; visibility:hidden; }
は、IE6 および IE7 と互換性があります。ie6 および ie7 は after 疑似クラスを使用できないためです。次のコードを追加します
.clearfix{zoom:1}
通常の状況では、親レイヤー内にフロートがあると、親レイヤーの高さが0になる可能性があります。clearfixを追加するだけで問題ありません
HTML:
<p class="parent clearfix"> <p class="left">left</p> <p class="right">right</p> </p>
CSS:
.clearfix{zoom:1} .clearfix:after{ content:""; display:block; height:0; clear:both; visibility:hidden; } .parent{ background-color:red; width:120px; } .left{ float:left; background-color:pink; height:60px; } .right{ float:right; background-color:#abcdef; }
float をクリアするための after pseudo-class の使用に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。