2011-09-09 48 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