理解 四种清除浮动的方法

用 clear 样式,对指定元素进行清除浮动操作:

<div class="divclear"></div>

.divclear {
  clear: both;  // both这个属性是两侧清除,还有左边或右边(left, right)
}

这是简单的对指定元素进行清除浮动操作,这样的清除浮动,只关心指定元素,使该元素的两侧不出现其他浮动。并不关心其他类似“父盒子高度支撑”的问题。

父元素结束标签之前插入一个清除浮动的块级元素:


<div class="topDiv">
    <div class="textDiv">...</div>
    <div class="floatDiv">float left</div>
    <div class="blankDiv"></div>
</div>

.blankDiv {
    clear: both;
}

这样的处理等于,是给父元素的结束标签之前增加了一个“块级元素”,然后给这个“块级元素”赋予clear的属性,帮助父盒子清除浮动,并且支撑起来了父盒子的高度。

利用添加伪元素清除浮动:

<div class="divclear clearfix"></div>
  display: block;
  clear: both;
  height: 0;
}

这个方法其实类似于第二个给父元素结束标签前增加“块级元素”,都是利用新增块级元素的方式去清除浮动,并且支撑父盒子高度。

利用 overflow 清除浮动:

当元素设置了overflow样式,且值不为visible时,该元素就建构了一个BFC(块级格式化上下文),所谓BFC有个特点,就是BFC的高度是要包含浮动元素的,
所以,给父元素设置了 overflow:auto 的属性后,该父元素的高度就被撑起来了。

原文地址:https://www.cnblogs.com/panic404/p/13567099.html