Skip to content

[css-inline-3] Suggestion: Clarify relationship between block container, root inline box, and line boxes #12613

@kannanwisen

Description

@kannanwisen

Hello CSS Working Group,

This issue is regarding the CSS Inline Layout Module Level 3, specifically the conceptual relationship between a block container, its generated root inline box, and the resulting line boxes, as described in Section 2.1. Layout of Line Boxes.

The Issue

The specification's high-level description can be interpreted to mean that the stack of line boxes are the direct contents of the block container that establishes the IFC.

While this is a useful simplification for describing the final visual result, this phrasing can be imprecise and confusing for developers trying to understand the underlying box generation model, as it overlooks the crucial role of the root inline box.

Technical Nuance

As the specification also details, a block container generates a single root inline box which holds all of its inline-level contents. The layout algorithm then fragments the content of this root inline box into a stack of line boxes.

Therefore, from a technical standpoint:

  • The root inline box is the true direct container of the inline content.
  • The line boxes are the formatted output of that content.

This distinction is further highlighted by the fact that the root inline box is part of the conceptual box tree (the set of boxes generated by elements and text), whereas line boxes are not. Line boxes are a separate structure generated by the formatting context itself to arrange the fragments of the boxes from the box tree.

Suggestion for Improvement

It would improve clarity if the specification more explicitly distinguished between these two concepts.

For example, a sentence could be added to clarify that the stack of line boxes is the result of laying out and fragmenting the contents of the root inline box. This would make it clear that line boxes are not direct children of the block container in the same way the root inline box is, and are not part of the same conceptual tree.

Thank you for your consideration and for your work on these important specifications.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions