- 额外标签法:在最后一个浮动标签后,新加一个标签,给其设置clear:both;
父级添加overflow属性:父元素添加overflow:hidden/auto;
使用after伪元素清除浮动:
1 | 优点:符合闭合浮动思想,结构语义化正确 |
优点:符合闭合浮动思想,结构语义化正确。
缺点:ie6-7不支持伪元素:after,使用zoom:1触发hasLayout。
父级div定义height;
父级div也一起浮动;
追本溯源
1.为什么要用浮动?
以前提出浮动的概念,主要是为了解决左边图片右边文字的需求,后来浮动在网页布局上应用比较广泛。
2.什么情况又要清除浮动?
当子元素都设置浮动之后,而父元素本身又没有设置宽高(设置浮动前宽高是由子元素撑起来的),会导致父元素的高度塌陷,原来被撑起来的height被置为0,最终就会影响父元素的布局。
说到底,就是因为所有的子元素都浮动,会导致父元素高度坍塌影响布局。在这种情况下,就要清除浮动。