CSS 清除浮动的两种方法
1. 使用 overflow 清除浮动(不推荐)
先找到浮动盒子的父元素,给父元素添加一个属性 overflow: hidden,就会清除子元素对页面的影响。注意这会裁剪超出内容,且创建 BFC,可能带来其他副作用。
2. 使用伪元素清除浮动(最常用)
伪元素:在页面上不存在的元素,但可以通过 CSS 添加上去。
种类:
:after(在元素之后);:before(在元素之前)。
注意:每个元素都有自己的伪元素。
.clearfix:after {
content: "";
height: 0;
line-height: 0;
display: block;
clear: both;
visibility: hidden; /* 将元素隐藏起来 */
/* 在页面的 clearfix 元素后面添加了一个空的块级元素
这个元素的高为 0 行高也为 0,并且这个元素清除了浮动 */
}
.clearfix {
zoom: 1; /* 为了兼容 IE6 */
}
补充:现代方案可以用
display: flow-root替代伪元素清除浮动:.parent { display: flow-root; }它直接让父元素形成 BFC,无需关心子元素浮动,更符合语义。



