示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <style> .parent { border: 5px solid #fcc; width: 300px; }
.child { border: 5px solid #f66; width: 100px; height: 100px; float: left; }
.clearfix:after { content: ''; visibility: hidden; clear: both; display: block; }
.clearfix { *zoom: 1; } </style>
<body> <div class="parent clearfix"> <div class="child"></div> <div class="child"></div> </div> </body>
|
父元素设置具体高度
给父元素设置具体高度后,即可清除浮动。但是这样相当于把高度写死了,很不灵活。
父元素结束标签之前插入空元素
1 2 3 4 5 6 7 8 9 10 11 12 13
| <style> .clear { clear: both; } </style>
<body> <div class="parent"> <div class="child"></div> <div class="child"></div> <div class="clear"></div> </div> </body>
|
给父元素添加伪元素(推荐)
1 2 3 4 5 6 7 8 9 10 11
| .clearfix:after { content: ''; visibility: hidden; clear: both; display: block; }
.clearfix { *zoom: 1; }
|
clear 属性只有块级元素才有效的,而 ::after 等伪元素默认都是内联水平,这就是借助伪元素清除浮动影响时需要设置 display 为 block 的原因
利用 BFC
1 2 3
| .parent { overflow: hidden; }
|
父元素浮动或者绝对定位
浮动
1 2 3
| .parent { float: left; }
|
绝对定位
1 2 3
| .parent { position: absolute; }
|
参考资料:
https://juejin.cn/post/6844903504545316877
https://www.kancloud.cn/pillys/qianduan/2049767