Skip to content

Commit a533ab9

Browse files
committed
[css-align-3] Rearrange the auto-safety text, and add in the resolution about scroll container content-alignment defaulting to unsafe. w3c#10008
1 parent 8e5024c commit a533ab9

File tree

2 files changed

+83
-62
lines changed

2 files changed

+83
-62
lines changed

css-align-3/Overview.bs

Lines changed: 77 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -867,65 +867,86 @@ Overflow Alignment: the ''safe'' and ''unsafe'' keywords and scroll safety limit
867867
<dt>(no value specified)
868868
<dd>
869869
If the <a>overflow alignment</a> isn't explicitly specified,
870-
the default <a>overflow alignment</a> is a blend of “safe” and “unsafe”,
871-
and also varies slightly depending on layout mode.
872-
873-
For [=absolutely positioned=] [=alignment subjects=]
874-
which are not in [=legacy positioning mode=]
875-
in the given axis:
876-
877-
1. If the [=alignment subject=] overflows its [=inset-modified containing block=]
878-
(its normal [=alignment container=]),
879-
no effect.
880-
2. If the <em>size</em> of the [=alignment subject=]
881-
fits within its [=original containing block=],
882-
but its alignment would cause it to overflow the [=original containing block=],
883-
it is instead shifted the minimum amount
884-
to stay within the [=original containing block=]
885-
(flush with the edge of the [=original containing block=]
886-
it was trying to overflow over).
887-
3. If the size of the [=alignment subject=]
888-
overflows the [=original containing block=],
889-
it is instead start-aligned within the [=original containing block=].
890-
891-
For all other elements:
892-
893-
1. If the [=alignment subject=] overflows its [=alignment container=],
894-
no effect.
895-
2. If the [=alignment subject=] would overflow
896-
the [=scrollable overflow area=] of its nearest ancestor [=scroll container=],
897-
(thus extending into the “unscrollable” region),
898-
then its overflow in that direction is limited
899-
by biasing any remaining overflow to the opposite side.
900-
901-
Issue: It may not be Web-compatible to implement the “smart” default behavior
902-
(though we hope so, and believe it to be likely),
903-
so UAs should pass any feedback on this point to the WG.
904-
UAs that have not implemented the “smart” default behavior
905-
must behave as ''safe'' for 'align-content' on [=block containers=]
906-
and ''unsafe'' otherwise.
870+
the default <a>overflow alignment</a> is a blend of “safe” and “unsafe”.
871+
See [[#auto-safety]] for details.
907872
</dl>
908873

909-
An [=absolutely-positioned element=]
910-
is in <dfn export>legacy positioning mode</dfn>
911-
in a given axis
912-
if all of the following are true:
913874

914-
* the relevant [=self-alignment property=] is ''justify-self/normal'' on the element.
915-
* the elements's 'inset-area' property does not define an [=inset-area grid=].
916-
917-
Note: A number of newer behaviors across several specifications
918-
can't apply to elements in [=legacy positioning mode=],
919-
due to backwards-compatibility constraints.
920-
921-
<!--
922-
██████ ███████ ██ ██ ████████ ████████ ██ ██ ████████
923-
██ ██ ██ ██ ██ ██ ███ ██ ██ ██ ███ ██ ██
924-
██ ██ ██ ██ ██ ████ ██ ██ ██ ████ ██ ██
925-
█████████ ███████ ██ ██ ██ ██ ██ ██ ██ ██████ ██ ██ ██ ██
926-
██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ████ ██
927-
██ ██ ██ ██ ██ ██ ██ ███ ██ ██ ██ ███ ██
928-
██████ ███████ ██ ██ ██ ████████ ██ ██ ██
875+
<h4 id=auto-safety>
876+
Automatic Overflow Alignment Safety</h4>
877+
878+
If no [=overflow alignment=] mode is specified for a property,
879+
the default behavior lies somewhere between ''safe'' and ''unsafe'',
880+
and also varies by layout mode.
881+
882+
<h5 id=auto-safety-scroll>
883+
Content Distribution for Scroll Containers</h5>
884+
885+
The default [=overflow alignment=] behavior
886+
for [=content distribution=] on [=scroll containers=] is ''unsafe''.
887+
Non-''normal'' values of the [=content distribution properties=] instead
888+
alter the [=scrollable overflow area=] in order to allow access to the overflowing content.
889+
See [[#overflow-scroll-position]].
890+
891+
<h5 id=auto-safety-position>
892+
Self-Alignment for Absolutely Positioned Boxes</h5>
893+
894+
For [=absolutely positioned=] [=alignment subjects=] whose
895+
896+
* relevant [=self-alignment property=] is not ''justify-self/normal'' and
897+
* whose 'inset-area' property successfully defines an [=inset-area grid=]
898+
899+
the default [=overflow alignment=] behavior is as follows:
900+
901+
1. If the [=alignment subject=] overflows its [=inset-modified containing block=]
902+
(its normal [=alignment container=]),
903+
but does not overflow its [=original containing block=]
904+
align as specified (''unsafe'').
905+
2. If the <em>size</em> of the [=alignment subject=]
906+
fits within its [=original containing block=],
907+
but its specified alignment would cause it to overflow the [=original containing block=],
908+
it is instead shifted the minimum amount
909+
to stay within the [=original containing block=]
910+
while honoring the alignment as much as possible
911+
(i.e., flush with the edge of the [=original containing block=]
912+
it was trying to overflow over).
913+
3. If the size of the [=alignment subject=]
914+
overflows the [=original containing block=],
915+
it is instead start-aligned within the [=original containing block=]
916+
(similar to ''safe'').
917+
918+
(For [=absolutely-positioned=] [=alignment subjects=] that fail the above conditions,
919+
see [[#auto-safety-defaults]].)
920+
921+
<h5 id=auto-safety-default>
922+
All Other Alignment</h5>
923+
924+
For all other elements:
925+
926+
1. If the [=alignment subject=] overflows its [=alignment container=],
927+
align as specified (''unsafe'').
928+
2. If the [=alignment subject=] would overflow
929+
the [=scrollable overflow area=] of its nearest ancestor [=scroll container=],
930+
(thus extending into the “unscrollable” region),
931+
then its overflow in that direction is limited
932+
by biasing any remaining overflow to the opposite side.
933+
934+
Issue: It may not be Web-compatible to implement the “smart” default behavior
935+
(though we hope so, and believe it to be likely),
936+
so UAs should pass any feedback on this point to the WG.
937+
UAs that have not implemented the “smart” default behavior
938+
must behave as ''safe'' for 'align-content' on [=block containers=]
939+
and ''unsafe'' otherwise.
940+
941+
<!-- Big Text: *-content
942+
943+
███▌ ███▌ █ █▌ █████▌ █████▌ █ █▌ █████▌
944+
█ █ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌
945+
█ █ █▌ █▌ █▌ ██▌ █▌ █▌ █▌ ██▌ █▌ █▌
946+
███████ ████▌ █▌ █▌ █▌ █▌▐█ █▌ █▌ ████ █▌▐█ █▌ █▌
947+
█ █ █▌ █▌ █▌ █▌ ██▌ █▌ █▌ █▌ ██▌ █▌
948+
█ █ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌
949+
███▌ ███▌ █▌ ▐▌ █▌ █████▌ █▌ ▐▌ █▌
929950
-->
930951

931952
<h2 id='content-distribution'>

css-anchor-position-1/Overview.bs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1104,12 +1104,12 @@ it makes the declaration referencing it [=invalid at computed-value time=].
11041104
<!-- Big Text: visibility
11051105

11061106
█▌ █▌ ████ ███▌ ████ ████▌ ████ █▌ ████ █████▌ █ ▐▌
1107-
█▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ ▐▌ █▌ ▐▌ █
1108-
█▌ █▌ ▐▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ ▐▌ █▌ █ ▐▌
1109-
▐▌ █ ▐▌ ███▌ ▐▌ █████ ▐▌ █▌ ▐▌ █▌ ▐▌█
1110-
█ ▐▌ ▐▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ ▐▌ █▌ █▌
1111-
▐▌ █ ▐▌ █▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ ▐▌ █▌ █▌
1112-
▐█ ████ ███▌ ████ ████▌ ████ █████ ████ █▌ █▌
1107+
█▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ ▐▌ █▌ ▐▌ █
1108+
█▌ █▌ ▐▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ ▐▌ █▌ █ ▐▌
1109+
▐▌ █ ▐▌ ███▌ ▐▌ █████ ▐▌ █▌ ▐▌ █▌ ▐▌█
1110+
█ ▐▌ ▐▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ ▐▌ █▌ █▌
1111+
▐▌ █ ▐▌ █▌ █▌ ▐▌ █▌ █▌ ▐▌ █▌ ▐▌ █▌ █▌
1112+
▐█ ████ ███▌ ████ ████▌ ████ █████ ████ █▌ █▌
11131113
-->
11141114

11151115
Conditional Hiding: the 'position-visibility' property {#position-visibility}

0 commit comments

Comments
 (0)