CSS——了解BFC(块级格式上下文)

61 阅读1分钟

概念了解

Block Formatting Context 块级格式化上下文(格式化=>初始化 上下文=>环境)

=>简单来说,就是把页面中的一块区域独立出来,这块区域有它自己的规则/环境,也不会影响到外面的元素。可以理解为在根元素内创建和根元素差不多环境的块框。

如何创建BFC?

  • 根元素HTML
  • float 除了none
  • position:absolute/fixed
  • display:inline-block、table-cells、flex、inline-flex(除了block)
  • overflow:hidden、auto、scroll(除了visible)

BFC内部规则

  1. 块级盒子按垂直方向排列,垂直方向上的margin会合并(外边距折叠)
  2. 盒子靠左摆放

BFC独立特性

  1. 新创建BFC不再适应父元素的宽度,而是适应自身元素的宽度
  2. BFC区域会包含页面中同级的float元素(BFC方式不可以是float),从而阻止区域元素被float元素覆盖
  3. 不同BFC外边距不会折叠

BFC应用

  • 避免某元素被浮动元素覆盖:
    • 左侧固定、右侧宽高自适应布局=>左侧元素float:left、右侧元素overflow:hidden
  • 去除外边距重叠现象