# BFC

# BFC定义

  • Block Format Context:块级格式化上下文
  • 是一个拥有独立渲染区域的盒子
  • 规定了内部元素如何布局,盒子内部元素与外部元素互不影响

# BFC布局规则

  • 内部子元素在垂直方向上,边距会发生重叠
  • 外面的元素不会影响里面的元素,反之亦然 【例1】
  • 设置为BFC的元素不会与float box区域重叠 【例2】
  • 计算BFC高度时,浮动子元素也参与计算 【例3】

【例1】:父子元素发生margin重叠

【例2】:左侧盒子浮动,右侧标准流的元素会有一部分跑到左边盒子的下面

【例3】:清除浮动。儿子浮动了,但是父亲没有设置高度,导致看不到父亲的背景色 (儿子float box也会参与计算)

# 如何创建BFC

满足以下条件之一:

  • 根元素(HTML元素)
  • float不为none
  • overflow不为visible
  • position:fixed / absolute
  • display: table-xx / inline-block,inline-flex,flex

# BFC的作用

  • 消除margin合并
    • 发生合并原因是同属于一个BFC,让其在不同BFC
  • 清除浮动,让父元素包住脱离文档流的元素
    • 计算BFC高度时,浮动元素也参与计算
Last Updated: 9/16/2021, 12:54:10 PM