@@ -36,6 +36,7 @@ spec:css-break-3; type:dfn; text:fragment
36
36
spec:css-display-3; type:dfn; text:box
37
37
spec:css-display-3; type:value; for:display; text:none
38
38
spec:css-display-3; type:value; for:<display-inside> ; text:grid
39
+ spec:css-display-3; type:value; for:<display-outside> ; text:inline
39
40
spec:css-pseudo-4; type:selector; text:::after
40
41
spec:css-pseudo-4; type:selector; text:::before
41
42
spec:css-pseudo-4; type:selector; text:::first-letter
@@ -90,7 +91,7 @@ The layout stage of CSS is responsible for generating and positioning <a>fragmen
90
91
<a>box tree</a> .
91
92
92
93
This specification describes an API which allows developers to layout a <a>box</a> in response to
93
- computed style and <a>box</a> tree changes.
94
+ computed style and <a>box tree </a> changes.
94
95
95
96
Layout API Containers {#layout-api-containers}
96
97
==============================================
@@ -115,6 +116,9 @@ provided by the author is used instead of the block layout.
115
116
For example, floats do not intrude into the layout API container, and the layout API container's
116
117
margins do not collapse with the margins of its contents.
117
118
119
+ All inflow children of a <a>layout API container</a> are called <dfn>layout API children</dfn> and
120
+ are laid out using the auther defined layout.
121
+
118
122
<a>Layout API containers</a> form a containing block for their contents
119
123
<a href="https://www.w3.org/TR/CSS2/visudet.html#containing-block-details">exactly like block
120
124
containers do</a> . [[!CSS21]]
@@ -136,6 +140,51 @@ the order in which they are returned from the layout method (via
136
140
{{FragmentResultOptions/childFragments}} ) is used in place of raw document order, and 'z-index'
137
141
values other than ''z-index/auto'' create a stacking context even if 'position' is ''static'' .
138
142
143
+ Box Tree Transformations {#layout-api-box-tree}
144
+ -----------------------------------------------
145
+
146
+ The children of a <a>layout API container</a> can act in different ways depending on the value of <a
147
+ for="document layout definition"> child display</a> (set by <code> childDisplay</code> on the class).
148
+
149
+ If the value of <a for="document layout definition">child display</a> is <code> "block"</code> the
150
+ 'display' value of that child is <a>blockified</a> . This is similar to children of <a>flex
151
+ containers</a> or <a>grid containers</a> . See [[!css3-display]] .
152
+
153
+ If the value of <a for="document layout definition">child display</a> is <code> "normal"</code> , no
154
+ <a>blockification</a> occurs. Instead children with a <<display-outside>> <a>computed value</a> of
155
+ ''inline'' (a <a>root inline box</a> ) will produce a single {{Fragment}} representing each line when
156
+ {{LayoutChild/layoutNextFragment()}} is called.
157
+
158
+ Note: This allows authors to adjust the available inline size of each line, and position each line
159
+ separately.
160
+
161
+ Children of a {{LayoutChild}} which represents <a>root inline box</a> also have some additional
162
+ transformations.
163
+
164
+ - A <a>block-level</a> box inside a <a>inline-level</a> box is <a>inlinified</a> I.e. its
165
+ <<display-outside>> is set to ''inline'' .
166
+
167
+ - A <a>float</a> inside a <a>inline-level</a> box is not taken out of flow. Instead it must be
168
+ treated as inflow, and be <a>inlinified</a> .
169
+
170
+ In both of the above cases the children become <a>atomic inlines</a> .
171
+
172
+ Note: User agents would not perform any "inline splitting" or fragmenting when they encounter a
173
+ <a>block-level</a> box.
174
+
175
+ <div class="note">
176
+ Note: In the example below "inline-span" would be represented as a single {{LayoutChild}} with
177
+ both "block" and "float" being <a>atomic inlines</a> .
178
+ <pre class="lang-html">
179
+ <span id="inline-span">
180
+ Text
181
+ <div id="block"></div>
182
+ <div id="float"></div>
183
+ Text
184
+ </span>
185
+ </pre>
186
+ </div>
187
+
139
188
Layout API Model and Terminology {#layout-api-model-and-terminology}
140
189
====================================================================
141
190
0 commit comments