Skip to content

Commit a5b2a79

Browse files
committed
[css-align] Handle CSS2.1's inverted 'auto' precedence rules for abspos in ''normal'', and keep it consistent with grid/etc for all other values.
1 parent 7167a7c commit a5b2a79

1 file changed

Lines changed: 32 additions & 20 deletions

File tree

css-align/Overview.bs

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -527,17 +527,17 @@ Details per Layout Mode {#distribution-details}
527527
<td>
528528
The entire contents of the block, as a unit.
529529
<tr>
530-
<th>'align-content' axis
530+
<th>'align-content' Axis
531531
<td>
532532
The <a>block axis</a>.
533533
If a <<content-distribution>> is specified
534534
the <a>fallback alignment</a> is used instead.
535535
<tr>
536-
<th>'justify-content' axis
536+
<th>'justify-content' Axis
537537
<td>
538538
Does not apply to and has no effect on <a>block containers</a>.
539539
<tr>
540-
<th>''justify-content/normal'' behavior
540+
<th>''justify-content/normal'' Behavior
541541
<td>
542542
All values other than ''justify-content/normal'' force the block container to establish a new formatting context.
543543
For table cells, the behavior of the ''justify-content/normal'' depends on the computed value of 'vertical-align':
@@ -563,17 +563,17 @@ Details per Layout Mode {#distribution-details}
563563
Issue: Should this apply to column like it does grid tracks?
564564
''justify-content/normal'' would act as ''stretch'', giving the current behavior.
565565
<tr>
566-
<th>'align-content' axis
566+
<th>'align-content' Axis
567567
<td>
568568
The <a>block axis</a>.
569569
If a <<content-distribution>> is specified
570570
the <a>fallback alignment</a> is used instead.
571571
<tr>
572-
<th>'justify-content' axis
572+
<th>'justify-content' Axis
573573
<td>
574574
Does not apply to and has no effect on <a>multi-column elements</a>.
575575
<tr>
576-
<th>''justify-content/normal'' behavior
576+
<th>''justify-content/normal'' Behavior
577577
<td>
578578
''justify-content/normal'' behaves as ''start''.
579579
</table>
@@ -594,18 +594,18 @@ Details per Layout Mode {#distribution-details}
594594
For 'align-content',
595595
the <a>flex lines</a>.
596596
<tr>
597-
<th>'align-content' axis
597+
<th>'align-content' Axis
598598
<td>
599599
The <a>cross axis</a>.
600600
<tr>
601-
<th>'justify-content' axis
601+
<th>'justify-content' Axis
602602
<td>
603603
The 'justify-content' property applies along the <a>main axis</a>,
604604
but since flexing in the <a>main axis</a> is controlled by 'flex',
605605
''<content-distribution>/stretch'' behaves as ''flex-start''
606606
(ignoring the specified <a>fallback alignment</a>, if any).
607607
<tr>
608-
<th>''justify-content/normal'' behavior
608+
<th>''justify-content/normal'' Behavior
609609
<td>
610610
''justify-content/normal'' behaves as ''<content-distribution>/stretch''.
611611
</table>
@@ -624,17 +624,17 @@ Details per Layout Mode {#distribution-details}
624624
<td>
625625
The <a>grid tracks</a>.
626626
<tr>
627-
<th>'align-content' axis
627+
<th>'align-content' Axis
628628
<td>
629629
The <a lt="block axis">block (column) axis</a>,
630630
aligning the <a>grid rows</a>.
631631
<tr>
632-
<th>'justify-content' axis
632+
<th>'justify-content' Axis
633633
<td>
634634
The <a lt="inline axis">inline (row) axis</a>,
635635
aligning the <a>grid columns</a>.
636636
<tr>
637-
<th>''justify-content/normal'' behavior
637+
<th>''justify-content/normal'' Behavior
638638
<td>
639639
''justify-content/normal'' behaves as ''stretch''.
640640
</table>
@@ -859,9 +859,18 @@ Inline/Main-Axis Alignment: the 'justify-self' property</h3>
859859
<tr>
860860
<th>''justify-self/normal'' Behavior
861861
<td>
862-
Consistent with CSS2.1,
862+
For consistency with CSS 2.1,
863863
the ''justify-self/normal'' keyword behaves as ''start'' on replaced absolutely-positioned boxes,
864864
and behaves as ''justify-self/stretch'' on all other absolutely-positioned boxes.
865+
866+
If the box has non-''top/auto'' offsets in this axis,
867+
and either 'margin' in this axis is ''margin/auto'',
868+
an ''width/auto'' 'width' is treated as ''fill-available''
869+
and ''margin/auto'' margins are treated as zero.
870+
(Otherwise, when 'justify-content' is not ''justify-content/normal'',
871+
''width: auto'' is treated as ''width/fit-content''
872+
and ''margin/auto'' margins are used for alignment
873+
as in in-flow block-level layout.)
865874
<tr>
866875
<th>Other Details
867876
<td>
@@ -880,12 +889,6 @@ Inline/Main-Axis Alignment: the 'justify-self' property</h3>
880889
'justify-self' has no effect.
881890
</table>
882891

883-
Issue: When you have non-auto left/right and auto width,
884-
legacy behavior stretches the width and ignores margins.
885-
We should keep "auto" around for abspos,
886-
and have it do this legacy behavior.
887-
Any other value (including "stretch") should do standard "auto margins get first dibs" behavior.
888-
889892
### Table Cells ### {#justify-cell}
890893

891894
This property does not apply to table cells,
@@ -976,9 +979,18 @@ Block/Cross-Axis Alignment: the 'align-self' property</h3>
976979
<tr>
977980
<th>''align-self/normal'' Behavior
978981
<td>
979-
Consistent with CSS2.1,
982+
For consistency with CSS 2.1,
980983
the ''align-self/normal'' keyword behaves as ''start'' on replaced absolutely-positioned boxes,
981984
and behaves as ''align-self/stretch'' on all other absolutely-positioned boxes.
985+
986+
If the box has non-''top/auto'' offsets in this axis,
987+
and either 'margin' in this axis is ''margin/auto'',
988+
an ''width/auto'' 'height' is treated as ''fill-available''
989+
and ''margin/auto'' margins are treated as zero.
990+
(Otherwise, when 'align-content' is not ''align-content/normal'',
991+
''height: auto'' is treated as ''height/fit-content''
992+
and ''margin/auto'' margins are used for alignment
993+
as in in-flow block-level layout.)
982994
<tr>
983995
<th>Other Details
984996
<td>

0 commit comments

Comments
 (0)