.clearfix {
*zoom:1;
}
.clearfix:after {
content:'';
display:block;
clear:both;
}
这是经典的清除浮动的方法之一,通常称为“clearfix”方法。这方法使用了伪元素(:after
)来在浮动元素的最后插入一个空的块级元素,并且通过clear:both
确保它自身不受浮动元素的影响。zoom:1
则是为了兼容老版本的IE浏览器。
这是一个解释每个部分的简要说明:
-
zoom: 1;
- 该属性是为了解决IE浏览器对BFC(块级格式化上下文)的支持问题。在IE浏览器中,触发元素的
hasLayout
属性,有助于清除浮动。
- 该属性是为了解决IE浏览器对BFC(块级格式化上下文)的支持问题。在IE浏览器中,触发元素的
-
.clearfix:after
- 使用伪元素
:after
来在.clearfix
元素的最后创建一个虚拟的块级元素。
- 使用伪元素
-
content: '';
- 虽然在这里的
:after
伪元素没有实际的内容,但是通过设置content
属性为空字符串,它变成了一个真正的元素。
- 虽然在这里的
-
display: block;
- 将伪元素设置为块级元素,确保它占据一行。
-
clear: both;
- 这是清除浮动的关键部分。通过将
clear
属性设置为both
,确保伪元素出现在浮动元素的下方,从而达到清除浮动的效果。
- 这是清除浮动的关键部分。通过将
这个方法通常适用于那些包含浮动元素但没有设置明确高度的容器元素。但是,请注意,随着CSS的发展,现代布局技术和弹性布局等也提供了更好的解决方案,不再强烈依赖于清除浮动的技术。