8000 [css-align-3] First draft of specifying effect of *-content on how to… · w3c/csswg-drafts@f6cb21b · GitHub
Skip to content

Commit f6cb21b

Browse files
committed
[css-align-3] First draft of specifying effect of *-content on how to compute static position/sizing of abspos elements. #1432 (comment)
1 parent df4d90b commit f6cb21b

1 file changed

Lines changed: 42 additions & 2 deletions

File tree

css-align-3/Overview.bs

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@ Previous Version: https://www.w3.org/TR/2014/WD-css-align-3-20141218/
2020
Previous Version: https://www.w3.org/TR/2013/WD-css3-align-20130514/
2121
Previous Version: https://www.w3.org/TR/2012/WD-css3-align-20120612/
2222
Abstract: This module contains the features of <a href="https://www.w3.org/TR/CSS/">CSS</a> relating to the alignment of boxes within their containers in the various CSS box layout models: block layout, table layout, flex layout, and grid layout. (The alignment of text and inline-level content is defined in [[CSS-TEXT-3]] and [[CSS-INLINE-3]].)
23-
Ignored Terms: table cell, stretch, scrollable overflow region
23+
Ignored Terms: table cell, stretch, scrollable overflow region, static position, static-position containing block, static positions
2424
At Risk: ''[ first | last ]? baseline''
2525
At Risk: the <<overflow-position>> keywords
2626
At Risk: the scrollable-area safety trigger into ''safe'' mode when no <<overflow-position>> is specified
2727
At Risk: the ''legacy'' keyword for 'justify-items'
28+
At Risk: the effect of the <a>box alignment properties</a> on absolutely-positioned boxes with ''left/auto'' offsets
2829
</pre>
2930

3031
<pre class=link-defaults>
@@ -911,7 +912,9 @@ The 'justify-content' and 'align-content' Properties</h3>
911912
<tr>
912913
<th>'justify-content' Axis
913914
<td>
914-
Does not apply to and has no effect on <a>block containers</a>.
915+
Does not apply to and has no effect on <a>block containers</a>
916+
except insofar as it affects absolutely-positioned elements,
917+
see [[#distribution-abspos-static]].
915918
<tr>
916919
<th>''justify-content/normal'' Behavior
917920
<td>
@@ -927,6 +930,43 @@ The 'justify-content' and 'align-content' Properties</h3>
927930
''justify-content/normal'' otherwise behaves as ''start''.
928931
</table>
929932

933+
### Static Position of Absolutely-Positioned Boxes ### {#distribution-abspos-static}
934+
935+
When applying the layout rules for absolutely-positioned elements
936+
([[CSS2#abs-non-replaced-width]] and [[CSS2#abs-replaced-width]])
937+
wherever the 'direction' property of the <a>static-position containing block</a> is referenced,
938+
instead reference the value of its 'justify-content' or 'align-content' property
939+
(whichever is defined to apply to the <a>static-position containing block</a>’s <a>inline axis</a>),
940+
treating ''justify-content/normal'' as ''start''
941+
and any <a>distributed alignment</a> value as its <a>fallback alignment</a>.
942+
For example,
943+
when 'direction' is ''ltr'' and 'justify-content' is ''justify-content/end'',
944+
apply the rules for ''direction: rtl'';
945+
when 'direction' is ''rtl'' and 'justify-content' is ''justify-content/space-between'',
946+
apply the rules for ''direction: rtl'';
947+
etc.
948+
949+
For the case of ''justify-content/center'' (or its equivalent),
950+
split the difference:
951+
when both 'inset-inline-start' and 'inset-inline-end'
952+
('left' and 'right' in horizontal LTR <a>writing modes</a>)
953+
are ''left/auto'',
954+
set each to its <a>static position</a>,
955+
and if the resulting “shrink-to-fit” <a>inline size</a> conflicts,
956+
re-solve the equation for 'inset-inline-end'.
957+
958+
Note: What this means is that,
959+
instead of always sizing an absolutely-positioned element
960+
within the available space between
961+
its inline-start <a>static position</a>
962+
and its inline-end <a>containing block</a> edge,
963+
the author can choose to instead use the space between
964+
its inline-start <a>containing block</a> edge
965+
and inline-end <a>static position</a>
966+
or between its inline-start and inline-end <a>static positions</a>
967+
by changing the <a>static-position containing block</a>’s
968+
<a>content-distribution properties</a>.
969+
930970
### Multicol Containers ### {#distribution-multicol}
931971

932972
<table class="data align-details">

0 commit comments

Comments
 (0)