清除 BFC 的方法
# 为什么要清除浮动
因为浮动的子元素会导致他的父元素高度坍塌,就是没有高度了,如果父元素没有设置高度的话。
# 怎么清除浮动?
- 1.触发BFC:BFC 的特性之一就是浮动的子元素的高度也会参与触发
BFC
的父元素的高度计算,所以所有可以触发BFC
的方法都可以用来清除BFC
- 2.
clear: both
# 触发 BFC 的方式
- 1.将父级也设置成浮动
这种方法肯定是弊大于利,想想都知道,父级设置成浮动了,那爷爷级肯定又会受影响,又得解决爷爷级的高度坍塌,这不是无限套娃吗??
- 2.给父级增加定位absolute 或者 fixed
也会脱离文档流啊,影响了整体布局,这不是给自己找罪受吗?
-3.给父级设置overflow:hidden
缺点:当文本过长,且包含过长英文时,会出现英文文本被隐藏的情况
-4.给父级设置对应的高度
缺点:如果浮动元素是定宽的,那还好,如果是不定宽的,那这种方式就很不灵活了
-5.末尾增加空元素进行clear
<div class="box">
<div class="left"></div>
<div class="right"></div>
<div class="bottomDiv"></div>
</div>
.bottomDiv {
clear: both;
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
这里bottomDiv设置成clear:both,代表了它左右都不能有浮动元素,这迫使了他往下移动,进而撑开了父级盒子的高度。
这种方法就为了清除浮动给页面增加了一个标签,不妥
-6.给父级添加伪元素进行clear
.box::after {
content: '.';
height: 0;
display: block;
clear: both;
}
1
2
3
4
5
6
2
3
4
5
6
完美的方法
最近更新时间: 2022/09/28 16:26:36
- 01
- 2023/07/03 00:00:00
- 02
- 2023/04/22 00:00:00
- 03
- 2023/02/16 00:00:00