Skip to content

[css-display] What owns display types, elements or boxes? #1480

Closed
@Loirooriol

Description

@Loirooriol

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?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions