-
Notifications
You must be signed in to change notification settings - Fork 747
Description
Hello CSS Working Group,
This issue is to suggest a clarification for the definition of "block-level" elements in the CSS 2 specification, section 9.2.1.
The current text states:
The following values of the display property make an element block-level: block, list-item, and table.
While this was the standard at the time, this statement is imprecise when viewed through the lens of the modern CSS Display Module Level 3, which separates the display property into display-outside and display-inside.
The Point of Imprecision
The modern specification clarifies that the "block-level" nature of a box is determined by its display-outside value (block).
The values list-item and table are display-inside values. They define the internal formatting context for the element's children (e.g., to generate a marker box or a table formatting context). The reason elements with display: list-item or display: table behave as block-level is because they have an implicit display-outside value of block.
The current wording in CSS 2.2 conflates these two concepts, which can be a source of confusion for developers trying to build a precise mental model of the CSS layout system.
Proposal for Clarification
To improve the clarity of this foundational text and align it with modern concepts, I suggest adding an informative note. A full rewrite might be out of scope for a legacy specification, but a note would provide essential context for future readers.
An example of what this note could look like:
Note: In the modern CSS Display Module, the concept of "block-level" is defined by the display-outside property. The values list-item and table are display-inside values that also have an implicit display-outside value of block.
Adding this clarification would help developers understand the evolution of the display property and the precise reason for this behavior.
Thank you for your consideration.