Skip to content

Commit eae7237

Browse files
committed
spec/css3-box: edited
1 parent 82dd8dd commit eae7237

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

spec/css3-box.txt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,14 +156,17 @@ From regions:
156156

157157
===Current thinking===
158158

159-
In CSS21, a flow root establishes a block formatting context (and everything which establishes a block formatting context is a flow root). This implies that if its flow consists entirely of inline-level boxes, an anonymous block box is induced which establishes the inline formatting context in which the inline-level boxes participate.
159+
Formatting contexts are established by (possibly anonymous) boxes which may or may not be flow roots, whilst a flow root necessarily establishes a formatting context of some kind, depending on the box's properties.
160160

161-
For css3-box, a flow root establishes a formatting context of some kind, depending on the box's properties. Most commonly, a flow root establishes a block formatting context.
161+
A flow root is roughly a box whose normal flow is rendered in a location that's out-of-sync with the normal flow content that surrounds its box in the box tree. I'm not yet clear whether its even necessary to care about the concept of flow root.
162162

163-
Aside from being established by flow roots, formatting contexts can also be induced anonymously: for example, an inline-level child box which would otherwise be a sibling of a block-level box in a block formatting context causes an anonymous block box to be created to contain that inline-level box and establish an inline formatting context for it; and a misparented table-cell induces box fixup resulting in the usual table wrapper formatting context and table formatting context.
164-
165-
Regions are flow roots. Column boxes are flow roots. Page boxes are flow roots. Currently in CSS, regions and page boxes necessarily establish //block// formatting contexts, and column boxes establish column formatting contexts which are currently identical in behaviour to block formatting contexts. All these boxes might perhaps establish other types of formatting context in future.
163+
* Regions, floats, abspos boxes and transform boxes are flow roots.
164+
* Neither column boxes, page boxes nor align boxes are inherently flow roots, but they do establish new formatting contexts.
165+
* (The "align box" type exists merely to artifically establish a new block formatting context. Its name desperately needs changing.)
166+
* Boxes whose used value of ‘overflow’ is not ‘visible’, table wrapper boxes, table cells, inline blocks and boxes whose directionality is orthogonal to their parent are //probably// not flow roots, but they do establish new formatting contexts.
167+
* A ‘child-align’ box is neither a flow root nor inherently establishes a new formatting context.
166168

169+
Column boxes establish column formatting contexts which are currently identical in behaviour to block formatting contexts.
167170
(In future, column formatting contexts might allow the overflow of a float from a previous column to affect the block formatting of the column in which the overflow sits. Perhaps 'clear' will react to that float overflow too.)
168171

169172
Recall that the scope of float behaviour and clearance behaviour is restricted to the block formatting context in which the float and clearing element participates.

0 commit comments

Comments
 (0)