@@ -101,8 +101,9 @@ Module Interactions</h3>
101101
102102 This module adds some new alignment capabilities
103103 to the block layout model described in [[!CSS2]] <a href="https://www.w3.org/TR/CSS2/visuren.html">chapters 9</a>
104- and <a href="https://www.w3.org/TR/CSS2/visudet.html">10</a>
105- and defines the interaction of these properties
104+ and <a href="https://www.w3.org/TR/CSS2/visudet.html">10</a> ,
105+ <a href="#justify-block">redefines how overconstrained block-level box margins are resolved</a> ,
106+ and defines the interaction of these new alignment properties
106107 with the alignment of table cell content using 'vertical-align' ,
107108 as defined in [[!CSS2]] <a href="https://www.w3.org/TR/CSS2/tables.html#height-layout">chapter 17</a> .
108109
@@ -1204,25 +1205,62 @@ Baseline Content-Alignment</h3>
12041205 and if its computed 'align-content' is ''first baseline'' /''last baseline'' .
12051206 </dl>
12061207
1207- Additionally, if <a>self-alignment</a> applies to the box in an axis,
1208- in order to participate in <a>baseline content-alignment</a> in that axis
1209- it must also have a <dfn noexport>coordinated self-alignment preference</dfn> ;
1210- that is:
1211-
1212- * The relevant <a>self-alignment property</a>
1213- behaves as either ''align-self/stretch'' or ''self-start'' /''self-end''
1214- given a <a>baseline alignment preference</a> of ”first”/“last”.
1215- For this purpose,
1216- the ''start'' , ''end'' , ''flex-start'' , and ''flex-end'' values
1217- are treated as either ''self-start'' or ''self-end'' ,
1218- whichever they end up equivalent to.
1219- * Its used self-alignment is not affected by its [=overflow alignment=] .
1220- (That is, the used self-alignment is what would result from an ''unsafe'' [=overflow alignment=] .)
1221-
1222- <!-- This is because such a box is no longer guaranteed to line up the relevant edge with its siblings -->
1208+ Additionally,
1209+ in order to participate in <a>baseline content-alignment</a>
1210+ it must also have a <dfn noexport>coordinated self-alignment preference</dfn> ,
1211+ to guarantee that the box lines up the relevant edge
1212+ with other boxes in its [=baseline-sharing group=] .
1213+ That is, the box’s [=start=] ([=end=] ) [=margin edge=]
1214+ must be intended to align--
1215+ and actually align--
1216+ to the corresponding [=edge=] of its [=containing block=]
1217+ when its [=baseline alignment preference=] is “first” (“last”).
12231218 It otherwise takes its <a>fallback alignment</a> .
12241219
1225- See [[#align-by-baseline]] for exact details.
1220+ <details class="note">
1221+ <summary> When is a self-alignment preference coordinated?</summary>
1222+
1223+ A box’s [=start=] [=margin edge=] is aligned
1224+ to the corresponding edge of its [=containing block=]
1225+ and it has a [=coordinated self-alignment preference=]
1226+ for a “first” [=baseline alignment preference=] when,
1227+ in the relevant axis:
1228+
1229+ * There are no ''margin/auto'' [=margins=] and
1230+ the relevant <a>self-alignment property</a>
1231+ either is or aligns identically to
1232+ ''align-self/stretch'' or ''self-start'' ; or
1233+ * There is only an ''margin/auto'' [=end=] -edge [=margin=] ,
1234+ which absorbs any positive free space
1235+ and disables the effects of any [=self-alignment property=] ,
1236+ <em> and</em>
1237+ its [=margin box=] does not overflow its [=containing block=]
1238+ under circumstances that would cause it
1239+ to effectively end-align instead
1240+ (such as having a [=containing block=] with an opposite [=writing mode=] ).
1241+
1242+ A box’s [=end=] [=margin edge=] is aligned
1243+ to the corresponding edge of its [=containing block=]
1244+ and it has a [=coordinated self-alignment preference=]
1245+ for a “last” [=baseline alignment preference=] when,
1246+ in the relevant axis:
1247+
1248+ * There are no ''margin/auto'' [=margins=] and
1249+ the relevant <a>self-alignment property</a>
1250+ either is or aligns identically to ''self-end''
1251+ <em> and</em>
1252+ its self-alignment is what would result
1253+ from an ''unsafe'' [=overflow alignment=] ; or
1254+ * There is only an ''margin/auto'' [=start=] -edge [=margin=] ,
1255+ which absorbs any positive free space
1256+ and disables the effects of any [=self-alignment property=]
1257+ <em> and</em>
1258+ its [=margin box=] does not overflow its [=containing block=]
1259+ under circumstances that would cause it
1260+ to effectively start-align instead.
1261+ </details>
1262+
1263+ See [[#align-by-baseline]] for additional details.
12261264 <a>Baseline content-alignment</a> can increase the intrinsic size of the box.
12271265
12281266<!--
@@ -2410,6 +2448,10 @@ Changes</h2>
24102448 (<a href="https://github.com/w3c/csswg-drafts/issues/3611">Issue 3611</a> )
24112449 <li> Clarified that only non-replaced boxes are affected by [=content-alignment].
24122450 (<a href="https://github.com/w3c/csswg-drafts/issues/4545">Issue 4545</a>)
2451+ <li>Clarified when a box has a [=coordinated self-alignment preference=]
2452+ that enables [=baseline content-alignment=] ,
2453+ particularly with respect to ''margin/auto'' [=margins=] .
2454+ (<a href="https://github.com/w3c/csswg-drafts/issues/5923">Issue 5923</a> )
24132455 </ul>
24142456
24152457 Changes since the <a href="https://www.w3.org/TR/2018/WD-css-align-3-20181206/">6 December 2018 Working Draft</a> include:
0 commit comments