CSS 清除浮动的4种方法

前言

为什么要清除浮动?因为父级盒子很多情况下,不方便给高度,但是子盒子浮动就不占有位置,最后父级盒子高度为 0,就影响了下面的标准流盒子


实现方法

额外标签法

浮动元素末尾添加一个空的标签 例如:

1
<div style="clear:both"></div>

父级添加overflow属性

可以给父级添加 overflow 属性为 hiddenautoscroll ,触发 BFC

1
2
3
4
5
.Father {
overflow: hidden;
/* overflow: auto; */
/* overflow: scroll; */
}

父级使用after伪元素

1
2
3
4
5
6
7
8
9
10
11
12
.Father::after {
content: '';
display: block;
height: 0;
clear: both;
visibility: hidden;
}

/* IE6、7 专有 */
.Father {
*zoom: 1;
}

父级使用双伪元素

1
2
3
4
5
6
7
8
9
10
11
12
13
.Father::before,
.Father::after {
content: '';
display: table;
}

.Father::after {
clear: both;
}

.Father {
*zoom: 1;
}

总结

清除浮动的方式优点缺点
额外标签法通俗易懂,书写方便添加许多无意义的标签,结构化较差
父级添加 overflow 属性结构语义化正确溢出隐藏
父级使用 after 伪元素通俗易懂,书写方便由于 IE6-7 不支持:after,兼容性问题
父级使用双伪元素结构语义化正确由于 IE6-7 不支持:after,兼容性问题

版权声明

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 协议 ,转载请注明出处!


CSS 清除浮动的4种方法
https://www.xukaiyyds.cn/posts/c20320c4/
作者
xukai
发布于
2022年12月25日
更新于
2023年3月31日
许可协议