BFC

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

BFC是什么其实很难去讲清楚。就如同,你晓得桌子是什么,然而你不好用语言形容,然而你看到了它,却能够认出来他是桌子一样。

那么咱们只须要记住什么时候会 创立块格式化上下文

下面是MDN的说法,然而其实面试中不须要说这么多状况,毕竟这个也就是在面试中会应用到。
那么咱们就记住一部分就好了。

  • 根元素(<html>)
  • 浮动元素(元素的 float 不是 none)
  • 相对定位元素(元素的 position 为 absolute 或 fixed)
  • 行内块元素(元素的 display 为 inline-block)
  • overflow 计算值(Computed)不为 visible 的块元素
  • display 值为 flow-root 的元素 (兼容性不太好)
  • 弹性元素(display 为 flex 或 inline-flex 元素的间接子元素)
  • 网格元素(display 为 grid 或 inline-grid 元素的间接子元素)

块格式化上下文的能够革除浮动,能够将div中的浮动元素全副包裹起来。
咱们平时会应用

.container::after{  content:'';  display:block;  clear:both;}

这种形式来革除浮动。那就是因为发明BFC来革除浮动会应用一些副作用的css

display:flow-root

这个属性的兼容性又不太好,所以BFC的探讨大多数都是存在于面试当中。