关于清除浮动

小知识点

作者 Trekerz 日期 2019-10-07
关于清除浮动

一、css浮动的概念

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。当元素浮动之后,不会影响块级元素的布局,只会影响内联元素布局

二、为何要清除浮动

当父元素框的高度小于浮动框的时候,此时就会出现“高度塌陷”

三、如何清除浮动

  1. IE8以上通过加入.clearfix:after类清除浮动,IE6、7通过zoom:1清除浮动。

  2. .clearfix:after{
    display: block;
    content: '';
    clear: both;
    height: 0;
    }

    .clearfix{
    zoom:1
    }
  3. 在结尾添加空div<br/>标签,并设置clear: both

    .clearfix{
    clear: both
    }
  4. 父级div定义height

  5. 父级div触发BFC布局

  6. 父级也一起浮动(不推荐)

四、BFC布局

  1. 概念

    BFC(Block Formatting Context)是Web页面中盒模型布局的CSS渲染模式。它的定位体系属于常规文档流

  2. 如何触发

    • floatnone
    • positionabsolutefix
    • displayinline-blockstable-cellstable-captions
    • overflowvisible
  3. BFC中的盒子对齐

    所有属于同一个BFC的盒子都左对齐(左至右的格式),他们的左外边框紧贴着包含块的左边框。

  4. BFC导致的外边距折叠

  5. 使用BFC来防止外边距折叠

    毗邻块盒子的垂直外边距折叠只有他们是在同一BFC时才会发生。如果他们属于不同的BFC,他们之间的外边距将不会折叠。所以通过创建一个新的BFC我们可以防止外边距折叠。

  6. 使用BFC来包含浮动(解决高度塌陷问题)

  7. 使用BFC来防止文字环绕

  8. 在多列布局中使用BFC

    在多列布局中,如果我们在一个列内建立了一个新的BFC,它将会在前一列填充完之后的后面占据所剩余的空间,而不是被挤到下一行。

参考资料:

  1. 理解CSS中BFC


–end–