它是标准浮动问题。您在父容器div中有一堆浮动元素。由于子项是浮动的,因此父项不会扩展为包括所有子项。
我知道有关clearfix解决方案,以及将父容器div上的overflow属性设置为“ auto”或“ hidden”。http://www.quirksmode.org/css/clearing.html 对我来说,设置溢出方法似乎更好,因为它只是一个属性。我想了解的是,什么时候clearfix方法比该方法具有优势,因为我看到它的使用频率非常高。
PS我不关心IE6。
唯一需要使用“ clearfix”方法插入不可见内容进行清除的唯一时间是,如果您需要一个元素在将您要应用的元素溢出时将其可见,否则触发hasLayout+溢出是黄金。
请注意,在IE7中,溢出隐藏触发器hasLayout。不确定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; }