@@ -710,6 +710,66 @@ Absolute Positioning</h3>
710710 after [[#abspos-layout|layout]] .
711711 (Otherwise the [=resolved value=] is the [=used value=] described above.)
712712
713+
714+ <h4 id="staticpos-rect">
715+ Resolving Automatic Insets</h4>
716+
717+ When both [=inset properties=] in a given axis are ''left/auto'' ,
718+ they are resolved in reference to the box’s <dfn export>static position rectangle</dfn> ,
719+ whose edges represent the [=static position=] of the box
720+ from each side of its [=containing block=] .
721+ This [=static position rectangle=]
722+ and the [=static positions=] to which it corresponds
723+ are defined by the layout model
724+ the box would have had if its 'position' were ''position/static''
725+ (and its 'float' and 'clear' values were ''float/none'' ).
726+ (Note that this may require assuming a different hypothetical value
727+ for 'display' as well.)
728+
729+ <dl>
730+ <dt> Block Layout
731+ <dd>
732+ The [=static positions=] of a [=block-level box=]
733+ are defined in [[CSS2]] Chapter 10.
734+ The [=static position rectangle=] is a zero-thickness rectangle spanning between
735+ the inline-axis sides of the box’s [=static-position containing block=]
736+ (see <a href="https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width">CSS2§10.3.7</a> );
737+ and positioned at its [=block-start=] [=static position=]
738+ (see <a href="https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-height">CSS2§10.6.4</a> ).
739+
740+ <dt> Inline Layout
741+ <dd>
742+ The [=static positions=] of an [=inline-level box=]
743+ are defined in [[CSS2]] Chapter 10.
744+ The [=static position rectangle=] is a zero-thickness rectangle spanning between
745+ the [=line-over=] /[=line-under=] sides of the [=line box=]
746+ that would have contained its “hypothetical box”
747+ (see <a href="https://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width">CSS2§10.3.7</a> );
748+ and positioned at its [=inline-start=] [=static position=] .
749+
750+ <dt> Flex Layout
751+ <dd>
752+ The [=static position rectangle=] of the child of a [=flex container=]
753+ corresponds to the [=content edges=] of the [=flex container=] .
754+ See <a href="https://www.w3.org/TR/css-flexbox-1/#abspos-items">static position of a grid container child</a> in [[!CSS-FLEXBOX-1]] .
755+
756+ <dt> Grid Layout
757+ <dd>
758+ By default, the [=static position rectangle=] of the child of a [=grid container=]
759+ corresponds to the [=content edges=] of the [=grid container=] .
760+ However, if that [=grid container=] also establishes
761+ the box’s actual [=containing block=] ,
762+ then the [=grid area=] specified by the [=grid-placement properties=]
763+ establishes its [=static position rectangle=] instead.
764+ See the <a href="https://www.w3.org/TR/css-grid-1/#static-position">static position of a grid container child</a> in [[!CSS-GRID-1]] .
765+ </dl>
766+
767+ For the purposes of calculating the [=static position rectangle=] ,
768+ the [=containing block=] of [=fixed positioned elements=]
769+ is the [=initial containing block=] instead of the [=viewport=] ,
770+ and all [=scroll containers=] should be assumed
771+ to be scrolled to their [=initial scroll position=] .
772+
713773<h4 id="abspos-breaking" oldids="breaking">
714774Fragmenting Absolutely-positioned Elements</h4>
715775
@@ -1592,4 +1652,4 @@ and entering in sensitive information that they page can then capture.
15921652User agents must ensure that their native dialogs are positioned
15931653in ways that the page cannot emulate;
15941654in particular,
1595- that at least some of the dialog is outside the "poisoned pixels" that web content can paint to.
1655+ that at least some of the dialog is outside the "poisoned pixels" that web content can paint to.
0 commit comments