[csswg-drafts] [css-display] What owns dysplay types, elements or boxes?

Loirooriol has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-display] What owns dysplay types, elements or boxes? ==
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?

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/1480 using your GitHub account

Received on Tuesday, 30 May 2017 18:31:15 UTC