之所以要清除浮动是因为它们会影响父元素的的表现,如果这个父元素里面装的全都是浮动的元素,那么这个父元素的高度就会变成 0
-
The Empty Div Method
就是简单的用一个空的
<div style="clear: both"></div>,使用div的原因是它没有任何的浏览默认样式,所以不用担心不同的浏览器会有不同的表现但是在要在浮动元素之后,父元素结束之前加上。
但是却违背了 HTML 的语义化。
-
The Overflow Method
可以对父元素设置
overflow: auto/hidden,这样就可以使得父元素的高度被浮动的元素扩展。这是因为加上了这个属性之后,会使得父元素变成 BFC,因为 BFC 是可以包含浮动的,所以就会有了高度。
但也要注意的是,
overflow属性可能会让你的内容看不见或者出现了你不想要的滚动条 -
The Pseudo Selector Method
可以使用 CSS 的伪类
:after来清除浮动。在父元素加入clearfix这个类。.clearfix:after { content: '.'; visibility: hidden; display: block; height: 0; clear: both; } .clearfix { zoom: 1; /* IE 6/7 */ }
-
The Future
contain-floatValueW3C 准备加入这个
contain-float到min-height和max-height这个 CSS 属性上。详情看这里主要就是为了解决这个问题,那我们只要在父元素上这个这个属性值即可
.container { min-height: contain-float; }