块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其余元素交互的区域。css
下列方式会建立块格式化上下文:git
float
不是 none
)position
为 absolute
或 fixed
)display
为 inline-block
)display
为 table-cell
,HTML表格单元格默认为该值)display
为 table-caption
,HTML表格标题默认为该值)display
为 table、
table-row
、 table-row-group、
table-header-group、
table-footer-group
(分别是HTML table、row、tbody、thead、tfoot的默认属性)或 inline-table
)overflow
值不为 visible
的块元素display
值为 flow-root
的元素contain
值为 layout
、content
或 strict
的元素display
为 flex
或 inline-flex
元素的直接子元素)display
为 grid
或 inline-grid
元素的直接子元素)column-count
或 column-width
不为 auto,包括
column-count
为 1
)column-span
为 all
的元素始终会建立一个新的BFC,即便该元素没有包裹在一个多列容器中(标准变动,Chrome bug)。一个新的 display
属性的值,它能够建立无反作用的BFC。在父级块中使用 display: flow-root
能够建立新的BFC。github
https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context浏览器