css-bfc

24 阅读1分钟

BFC(Block Formatting Context)即块级格式化上下文

  1. 开启bfc的区域,是一块独立的渲染区域
  2. 隔绝了内部与外部的关系,不会相互干扰

开启bfc能解决什么问题?

  1. 开启bfc,其子元素不会在发生margin塌陷问题,不会和他的子元素发生margin合并问题
  2. 开启bfc,就算子元素浮动,高度也不会坍塌(高度计算包括浮动元素)
  3. 开启bfc,不会产生被其他浮动元素覆盖问题

触发BFC的条件包含不限于:

  • 根元素,即HTML元素
  • 浮动元素:float值为left、right
  • overflow值不为 visible,为 auto、scroll、hidden
  • display的值为inline-block、inltable-cell、table-caption、table、inline-table、flex、inline-flex、grid、inline-grid
  • position的值为absolute或fixed