BFC的理解及应用

什么是BFC

    BFC 是 ( Block Fromatting Context ) 的简写,翻译过来是 块级格式化上下文 ,拥有 BFC 属性的盒子,将成为一个独立的区域,用它独有的渲染方式,对其内部的元素进行渲染,但是不管它的内部发生什么样的变化,都不会对其外部造成任何影响。

BFC的特点

    BFC和标准流的渲染方式十分相似,却又不同。

1. 独立性

    BFC是一个独立的渲染空间,其内的元素不会影响到外部。

     margin-top :

普通块级元素(其父元素不含 padding 和 border)

   BFC的理解及应用

BFC元素

   BFC的理解及应用

注: 如果普通元素其父元素 paddingborder 不为零,也会隔开自身与父元素。

普通块级元素其父元素 border 不为 0

    BFC的理解及应用

普通块级元素其父元素 padding 不为 0

    BFC的理解及应用

2. 识别浮动元素(解决高度塌陷问题)

    BFC元素可以识别其兄弟浮动元素,和其子浮动元素。

BFC元素识别其兄弟浮动元素
普通块级元素与浮动兄弟元素

    BFC的理解及应用

BFC元素与浮动兄弟元素

    BFC的理解及应用

BFC元素识别其子浮动元素
普通块级元素与浮动子元素

    BFC的理解及应用

BFC元素与浮动子元素

    BFC的理解及应用

创建BFC元素

  • 浮动:float:left | right
  • 绝对定位或固定定位:position: absolute | fixed
  • overflow 属性值不为 visible : overflow: hidden | scroll | auto | ……
  • display属性值为:inline-block、table-cells、table-cells ……