2011-09-09 1 views
4

コンテナ要素内にフローティング要素がある場合は、コンテナをoverflow autoに設定するか、浮動要素の後にclear bothを追加する必要があります。clearfixの実際の動作についての混乱

これは、コンテナ内に浮遊している要素をクリアするので意味があります。

しかし、clearfix CSSトリックを使用しているときは、コンテナの後にクリアを行い、フローティング要素の後はクリアしないでください。これで、コンテナとフロートがクリアされるので、これがどのように機能しているのか混乱します。確かにまだコンテナのdodgyの高さを持っている原因になりますか?なぜなら、物理的な要素を持つコンテナの後にclear bothを置くと、それが機能しないので、なぜそれが:afterと動作するのですか?

誰でもこれを説明できますか?おかげ

例:

<div style="border:#000 1px solid;padding:10px;"> 
    <div style="width:100px;height:100px;background:blue;float:left;"></div> 
</div> 
<div style="clear:both;"></div> 

これは仕事を動作しないだろうが、それはclearfixは事実上何ではないのですか?

+1

ああ、あなたは ':after'クリアフィックスを指している... – BoltClock

+0

**ライブデモ1:** http://jsfiddle.net/Papmy/ **ライブデモ2:** http:// jsfiddle.net/Papmy/1/(あなたが見ることができる違いがあります) –

+0

の可能な複製[どのような 'clearfix'の方法が最適ですか?](http://stackoverflow.com/questions/211383/which-method- of-clearfix-is-best) – krtek

答えて

7

CSS :after擬似要素とは、要素の内容の後にありますが、要素自体の後ろではなく要素の中にあることを意味します。これが理由です。

+0

ありがとうございます;)おかげです。 – Cameron

+1

これは疑似要素です。 – BoltClock

+0

clearfixを実行する他の方法は:after擬似要素を使用する以外にもあります。http://stackoverflow.com/questions/211383/which-method-of-clearfix-is-best – krtek

関連する問題