1.为什么需要清除浮动
由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的标准流盒子.
由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响.
2.清除浮动本质
清除浮动的本质是清除浮动元素造成的影响
如果父盒子本身有高度,则不需要清除浮动
清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了
语法:
选择器{clear:属性值;}
属性值描述left清除左浮动
right清除右浮动
both清除两侧浮动
清除浮动的策略:
闭合浮动
3.清除浮动的方法
额外标签法,也称为隔墙法
父级添加 overflow 属性
父级添加after伪元素
父级添加双伪元素
额外标签法
额外标签法会在浮动元素末尾添加一个空的标签.例如
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;
}
效果:
给父级添加 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;
}
标签:浮动,12,父级,clearfix,清除,博学,元素,CSS,after
来源: https://blog.youkuaiyun.com/hecr_mingong/article/details/112575254