Skip to content

Commit 7fec041

Browse files
committed
[css-flexbox-1] Simply use cross-axis content edges for static position rectangle, matching Grid. w3c#5843
Also move the historical note to CSS Positioned Layout.
1 parent 731398d commit 7fec041

2 files changed

Lines changed: 21 additions & 23 deletions

File tree

css-flexbox-1/Overview.bs

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -739,14 +739,16 @@ Absolutely-Positioned Flex Children</h3>
739739
As it is out-of-flow,
740740
an absolutely-positioned child of a <a>flex container</a> does not participate in flex layout.
741741

742-
The <a href="https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width">static position</a>
742+
The [=cross-axis=] edges of the [=static-position rectangle=]
743743
of an absolutely-positioned child of a <a>flex container</a>
744-
is determined such that the child is positioned
745-
as if it were the sole <a>flex item</a> in the <a>flex container</a>,
744+
are the [=content edges=] of the [=flex container=]
745+
The [=main-axis=] edges of the [=static-position rectangle=]
746+
are where the [=margin edges=] of the child would be positioned
747+
if it were the sole <a>flex item</a> in the <a>flex container</a>,
746748
assuming both the child and the flex container
747749
were fixed-size boxes of their used size.
748-
For this purpose,
749-
''margin/auto'' margins are treated as zero.
750+
(For this purpose,
751+
''margin/auto'' margins are treated as zero.)
750752

751753
<wpt>
752754
abspos/abspos-autopos-htb-ltr.html
@@ -757,28 +759,10 @@ Absolutely-Positioned Flex Children</h3>
757759
abspos/abspos-autopos-vrl-rtl.html
758760
</wpt>
759761

760-
<div class="note">
761-
In other words,
762-
the <a>static-position rectangle</a> of an absolutely-positioned child of a <a>flex container</a>
763-
is the <a>flex container's</a> content box,
764-
where the <dfn>static-position rectangle</dfn> is the <a>alignment container</a>
765-
used to determine the static-position offsets of an absolutely-positioned box.
766-
767-
(In block layout the static position rectangle corresponds to the position of the “hypothetical box”
768-
described in <a href="https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width">CSS2.1&sect;10.3.7</a>.
769-
Since it has no alignment properties,
770-
CSS2.1 always uses a <a>block-start</a> <a>inline-start</a> alignment
771-
of the absolutely-positioned box within the <a>static-position rectangle</a>.
772-
Note that this definition will eventually move to the CSS Positioning module.)
773-
</div>
774-
775762
<div class='example'>
776763
The effect of this is that if you set, for example,
777764
''align-self: center;'' on an absolutely-positioned child of a <a>flex container</a>,
778765
auto offsets on the child will center it in the <a>flex container's</a> <a>cross axis</a>.
779-
780-
However, since the absolutely-positioned box is considered to be “fixed-size”,
781-
a value of ''align-self/stretch'' is treated the same as ''align-self/flex-start''.
782766
</div>
783767

784768
<h3 id='item-margins'>
@@ -3685,6 +3669,14 @@ Changes since the <a href="https://www.w3.org/TR/2018/CR-css-flexbox-1-20181119/
36853669
Significant changes include:
36863670

36873671
<ul>
3672+
<li id="change-2018-static-pos-align-content">
3673+
Use the [=content edges=] of the [=flex container=]
3674+
for determining the [=static position rectangle=] of flex container children,
3675+
rather than doing extra layout work.
3676+
This will result in ignoring 'align-content' on the flex container,
3677+
but allow 'align-self' on the box itself to still take effect.
3678+
(<a href="https://github.com/w3c/csswg-drafts/issues/5843">Issue 5843</a>)
3679+
36883680
<li id="change-2018-correctly-ignore-auto">
36893681
Correctly ignore ''width/auto'' [=preferred sizes=]
36903682
in both min <em>and</em> max size contribution calculations.

css-position-3/Overview.bs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -793,6 +793,12 @@ Resolving Automatic Insets</h4>
793793
and positioned at its [=block-start=] [=static position=]
794794
(see <a href="https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-height">CSS2&sect;10.6.4</a>).
795795

796+
Note: In block layout the static-position rectangle corresponds to the position of the “hypothetical box”
797+
described in <a href="https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width">CSS2.1&sect;10.3.7</a>.
798+
Since it has no alignment properties,
799+
CSS2.1 always uses a <a>block-start</a> <a>inline-start</a> alignment
800+
of the absolutely-positioned box within the <a>static-position rectangle</a>.
801+
796802
<dt>Inline Layout
797803
<dd>
798804
The [=static positions=] of an [=inline-level box=]

0 commit comments

Comments
 (0)