Css ClearFix vs Overflow

Css ClearFix vs Overflow,css,clearfix,Css,Clearfix,这是标准的浮动问题。父容器div中有一堆浮动元素。由于子容器是浮动的,父容器不会扩展到包含所有这些元素 我知道clearfix解决方案以及将父容器div上的overflow属性设置为“auto”或“hidden”。 对我来说,设置溢出方法似乎更好,因为它只是一个属性。我想了解的是,什么时候clearfix方法比这种方法有优势,因为我看到它被非常频繁地使用 另外,我不关心IE6。您唯一应该费心使用“clearfix”方法插入不可见内容以清除的时间是,如果您需要一个元素在溢出应用它的元素时可见,否则

这是标准的浮动问题。父容器div中有一堆浮动元素。由于子容器是浮动的,父容器不会扩展到包含所有这些元素

我知道clearfix解决方案以及将父容器div上的overflow属性设置为“auto”或“hidden”。 对我来说,设置溢出方法似乎更好,因为它只是一个属性。我想了解的是,什么时候clearfix方法比这种方法有优势,因为我看到它被非常频繁地使用


另外,我不关心IE6。

您唯一应该费心使用“clearfix”方法插入不可见内容以清除的时间是,如果您需要一个元素在溢出应用它的元素时可见,否则触发hasLayout+溢出是金黄色的

请注意,在IE7中,溢出隐藏触发器具有布局。对IE8不太清楚

#wrapper { width:80em; overflow:hidden; }
上述方法在大多数情况下都可以正常工作,除非您需要说,#header溢出#wrapper

#wrapper { width:80em; position:relative; }
#wrapper:after {  content:"."; clear:both; display:block; height:0; visibility:hidden; }
#header { position:absolute; top:-15px; left:-15px; }

IE8不再有
hasLayout
。是的,但总体来说确实如此,因为它支持旧模式而不是IE8标准模式。我还应该补充一点,对父元素应用浮点与
溢出:隐藏的效果相同。因此,如果您需要元素溢出(例如放置阴影),并且可以对父元素应用浮点值,这通常比clearfix好。如果元素水平居中,也就是90%的时间是包装器,则不建议对父元素进行浮点值。