[csswg-drafts] [css-transforms-2, css2.1] Define the pseudo stacking context concept (#4360)

chrishtr has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-transforms-2, css2.1] Define the pseudo stacking context concept ==
For de-facto [1] interop [2] reasons relating to WebKit/Blink implementation behavior, a `pseudo stacking context` should be defined.

Proposal: an element induces a `pseudo stacking context` if at least one of the following holds for the element:
* Induces a stacking context
* Is positioned
* Has `backface-visibility: hidden`
* Specifies columns (has non-auto column count or width)
* Scrolls overflow (note: *not* `overflow: hidden` with or without overflow)
* Is an embedded object, video, or canvas


[1] This concept is very similar to that for a "self-painting layer" in WebKit and [Blink](https://cs.chromium.org/search/?q=shouldbeselfpaintinglayer&type=cs). In Blink at least, there are couple of additional corner cases that cause self-painting layers, such as overlay scrollbars. Also, there are some unreliable corner cases, such as whether an iframe is composited or not. I don't think these should be specified. Instead Blink and WebKit should work towards not requiring self-painting layers for these cases.

[2] Elements which induce a `pseudo stacking context` will likely be specified to:
* Paint-as-if-positioned in the paint-order algorithm from CSS2.1 See #2717 for related discussion.
* Define a backface-visibility root. See #918.
* Define 3d-context-flattening-eligible. Also tracked in #918.
* Define perspective-containing-block-ancestor-eligible. Also tracked in #918 .

 



Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/4360 using your GitHub account

Received on Friday, 20 September 2019 22:48:29 UTC