浮动是CSS中常见的一种布局方式,当元素设置了浮动属性后,它会从正常文档流中脱离出来,然后向左或向右移动,直到碰到其它的浮动元素或者容器的边缘停止移动。浮动可以用来实现多列布局和文字环绕图片等效果。
清除浮动是指清除浮动元素所产生的影响,使得后面的元素能够正常布局。有时候浮动元素会导致父元素的高度塌陷,或者与其它元素重叠,这时候就需要清除浮动。
需要清除浮动的情况包括:
- 父元素没有设置高度,子元素浮动造成父元素高度塌陷
- 浮动元素后面的元素或者容器造成布局混乱或者重叠
常见的清除浮动方式包括:
- 使用空标签清除浮动
<div style="clear:both;"></div>
- 设置父元素的overflow属性为auto或hidden
- 使用clearfix类清除浮动(可以在CSS中定义),例如:
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
display: inline-block;
}
上面的代码中,使用了一个特殊的伪元素:after来清除浮动,通过将伪元素设置为块级元素,再使用clear属性清除浮动,最后将伪元素隐藏,达到清除浮动的效果。同时,这个类也可以通过将元素的display属性设置为inline-block使其与浮动元素同行。