博学谷 - CSS笔记12 - 清除浮动
作者:互联网
1.为什么需要清除浮动
- 由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的标准流盒子.
- 由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响.
2.清除浮动本质
- 清除浮动的本质是清除浮动元素造成的影响
- 如果父盒子本身有高度,则不需要清除浮动
- 清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了
语法:
选择器{clear:属性值;}
属性值 | 描述 |
---|---|
left | 清除左浮动 |
right | 清除右浮动 |
both | 清除两侧浮动 |
清除浮动的策略:
闭合浮动
3.清除浮动的方法
- 额外标签法,也称为隔墙法
- 父级添加 overflow 属性
- 父级添加after伪元素
- 父级添加双伪元素
额外标签法
额外标签法会在浮动元素末尾添加一个空的标签.例如 <div style=”clear:both”></div>.但是,所加的标签一定要是块级元素.
demo:
.box {
width: 400px;
margin: 0 auto;
}
.box div {
width: 100px;
height: 100px;
border: 1px solid red;
float: left;
}
.footer {
height: 100px;
background-color: grey;
}
.clear {
/* 只有块级元素才能清除浮动,行内块元素都不行 */
display: block;
clear: left;
}
<div class="box">
<div></div>
<div></div>
<div></div>
<div></div>
<span class="clear"></span>
</div>
<div class="footer"></div>
效果:
给父级添加 overflow 属性
语法:
{overflow: 属性值;}
:after 伪元素法
:after 方式是额外标签法的升级版。也是给父元素添加
代码:
.clearfix:after {
content: "";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
/* IE6、7 专有 */
*zoom: 1;
}
双伪元素清除浮动
也是给父元素添加
代码:
.clearfix:before,
.clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
*zoom: 1;
}
4.文章参考链接
a. https://www.boxuegu.com/
标签:浮动,12,父级,clearfix,清除,博学,元素,CSS,after 来源: https://blog.csdn.net/hecr_mingong/article/details/112575254