2011-09-09 76 views
4

當你有需要或者容器設置爲overflow auto或浮動元素後添加clear both容器元素內浮動元素。混亂,如何clearfix實際工作

這是有道理的,你是清除在容器內的浮動元素。

但是,當使用clearfix CSS技巧,你正在清除容器後,而不是在浮動元素之後...我很困惑這是如何工作,因爲你現在正在清理容器,而不是浮動,所以它應該當然仍然會導致容器的高度不正確?因爲如果我把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' clearfix ... – BoltClock

+0

**現場演示1:** ** http://jsfiddle.net/Papmy/現場演示2:** HTTP:// jsfiddle.net/Papmy/1/(有,你可以看到一個差)的 –

+0

可能重複[的「clearfix」哪種方法是最好的?](http://stackoverflow.com/questions/211383/which-method-的-clearfix-是最佳) – krtek

回答

7

的CSS :after pseudoelement指「元素的內容後,但仍然在一個元素中」,而不是「後的元素本身」。這就是它工作的原因。

+0

沒關係啊這是有道理的;)謝謝 – Cameron

+1

這是一個僞元素。 – BoltClock

+0

還有其他的方式做一個clearfix比使用:after僞元素,檢查http://stackoverflow.com/questions/211383/which-method-of-clearfix-is-best – krtek