Skip to content

Commit dd13427

Browse files
committed
[css-position-4] Define the 'scrollable containing block'. w3c#10861
1 parent 45fc958 commit dd13427

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

css-position-4/Overview.bs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,48 @@ It is recommended that UAs use [=out-of-band outlines=],
334334
as making outlines easily visible
335335
is an important accessibility feature.
336336

337+
338+
Scrollable Containing Block {#scrollable-cb}
339+
===========================
340+
341+
When an element
342+
generates an [=absolute positioning containing block=]
343+
for its descendants,
344+
that [=containing block=] is generated from the element's [=padding box=] edges.
345+
If that element is a [=scroll container=],
346+
this corresponds to the dimensions of the [=scrollport=],
347+
and does not shift as the scroll container is scrolled.
348+
In other words,
349+
it's "outside of" the scrollable area.
350+
351+
Sometimes, however, you instead want a [=containing block=]
352+
based on the "inside" of the scroll container,
353+
sized according to the scrollable contents
354+
and shifting as the container is scrolled.
355+
356+
Whenever a [=scroll container=] generates an [=absolute positioning containing block=],
357+
it addition to the normal [=containing block=] it generates,
358+
it also generates a <dfn export>scrollable containing block</dfn>.
359+
This is sized to match the [=padding box=] edges
360+
of the scrollable area,
361+
and is treated as being "inside" the scrollable area,
362+
so it moves as the [=scroll container=] is scrolled.
363+
364+
Note: This is not <em>quite</em> the [=scrollable overflow rectangle=];
365+
in particular, it doesn't include the effects of transformed elements
366+
or absolutely positioned elements.
367+
368+
In [=containing block chains=],
369+
the [=scrollable containing block=] generated by an element
370+
is considered a child of the element's normal [=containing block=],
371+
and a parent of any containing blocks generated by its descendants.
372+
373+
The [=scrollable containing block=] is not used by default,
374+
but certain CSS features
375+
(such as 'position-area')
376+
can specify that they use it instead of an element's normal [=containing block=].
377+
378+
337379
<!--
338380
████████ ███████ ████████
339381
██ ██ ██ ██ ██

0 commit comments

Comments
 (0)