創建 塊格式化上下文的方式如下:
•根元素或其它包含它的元素
•浮動元素 (元素的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 tables, table rows, table bodies, table headers and table footers的默認屬性],或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的元素沒有被包裹在一個多列容器中,column-span: all也始終會創建一個新的格式化上下文。
塊格式化上下文包含創建它的元素內的所有內容。
塊格式化上下文對於定位 (參見float) 與清除浮動 (參見clear) 很重要。定位和清除浮動的樣式規則只適用於處於同一塊格式化上下文內的元素。浮動不會影響其它塊格式化上下文中元素的布局,並且清除浮動只能清除同一塊格式化上下文中在它前面的元素的浮動。Margin collapsing也只發生在屬於同一塊格式化上下文的塊級元素之間。