Description
Some quotes suggest that display types are owned by boxes:
Boxes [...]. They’re often referred to by their display type
The display property defines box’s display type
the principal box’s inner display type defaults to flow
the principal box’s outer display type defaults to block.
table-cell boxes have a flow-root inner display type
table-caption boxes have a flow-root inner display type.
Boxes with layout-specific display types generate anonymous wrapper boxes
sets the box’s outer display type to block or inline (respectively)
If a block flow box is inlinified, its inner display type is set to flow-root
If an inline flow box is inlinified, it recursively inlinifies all of its in-flow children
If a layout-internal box is blockified, its inner display type converts to flow
A run-in box with a flow inner display type inlinifies its contents.
A non-replaced inline-level box whose inner display type is flow.
Any inline-level box whose inner display type is not flow establishes a new formatting context of the specified inner display type.
Some quotes suggest that display types are owned by elements (including ::before
, ::after
and ::marker
pseudo-elements):
The inner display of a replaced element
The <display-outside> keywords specify the element’s outer display type
the element’s inner display type defaults to flow.
The <display-inside> keywords specify the element’s inner display type
the element’s outer display type defaults to block
both the inner display type and the outer display type of elements using these display values are set to the given keyword.
Elements with either of these values do not have inner or outer display types
The root element’s display type is always blockified.
If the element [...]. Otherwise, it is made to establish a BFC by changing its inner display type to flow-root.
The difference is important because a single element can generate multiple boxes, e.g. an element with display: block table
generates a table wrapper box and a table box. Do these boxes have display types? If they do, I guess the table wrapper box has block flow-root
and the table box has block table
. But then, wouldn't the table box generate another table wrapper box according to https://drafts.csswg.org/css-display-3/#valdef-display-table?