BFC

57 阅读1分钟

BFC:块格式化上下文。(block formatting context)如果一个元素具有BFC,那么无论内部的子元素如何翻江倒海,都不会影响外部的元素。

触发BFC的常见情况

  • 根元素()或其它包含它的元素
  • float 不是 none
  • position 为 absolute 或 fixed
  • display: inline-block,table-cell,table-caption中的任意一个
  • overflow是auto,scroll,hidden

BFC解决的问题

  • margin边距重叠。(当两个邻近的盒子都设置了margin的时候,两个盒子之间的距离并不是margin之和,而是较大的那个margin。BFC不可能发生margin重叠,可以触发BFC解决margin重叠的问题。)
  • 清除内部浮动(高度塌陷)。 (父盒子高度由子盒子撑起来,此时如果子盒子设置了float,那么父盒子的高度就没了,为了解决这个问题,可以让父盒子触发BFC)
  • 可以利用BFC实现多栏布局(两栏、三栏、圣杯、双飞翼等)。