# 此页面贡献者:阿喵、年轻的小铲

块格式化上下文 (BFC)

BFC 包含创建它的元素内的所有内容。

BFC 对于定位闭合浮动很重要。定位和闭合浮动的样式规则只适用于处于同一 BFC 内的元素。浮动不会影响其它 BFC 中元素的布局,Margin collapsing 也只发生在属于同一BFC内的块级元素之间。

A BFC is created by one of the following:

  • 根元素,或其它包含它的元素

  • 块元素 ( overflow 值不为 visible )

  • 内联块元素 (display 值为 inline-block )

  • 浮动元素 ( float 值不为 none )

  • 绝对定位元素 (position 值为 absolutefixed )

  • 弹性元素 ( 其父级元素设置了 display 值为 flexinline-flex )

  • 网格元素 ( 其父级元素设置了 display 值为 gridinline-grid )

  • 多列容器 (元素的 column-count 或 column-width 值不为 auto, 包括 column-count: 1 的元素)

  • 表格单元格元素 (HTML表格单元格,或者 display 值为 table-cell )

  • 表格标题元素 (HTML表格标题,或者 display 值为 table-caption )

  • 匿名表格元素 (display 值为 tabletable-rowtable-row-grouptable-header-grouptable-footer-group (分别是HTML tables | table rows, table bodies, table headers and table footers的默认属性),或 inline-table)

  • display 值为 flow-root

  • contain 值为 layout | content | strict

  • column-span 值为 all (即便具有 column-span: all 的元素没有被包裹在一个多列容器中,也始终会创建一个新的BFC)

参考资料

BFC

理解CSS中BFC

那些年我们一起清除过的浮动

上次更新: 7/29/2018, 12:21:27 PM