- From: Tab Atkins Jr. via GitHub <noreply@w3.org>
- Date: Thu, 28 Aug 2025 18:04:32 +0000
- To: public-css-archive@w3.org
tabatkins has just created a new issue for https://github.com/w3c/csswg-drafts: == [css-position] Can we fix the "fixpos containing block" issue? == `position:fixed` is a little weird right now, for unclear legacy reasons. Both fixpos and abspos can "escape" a scrolling ancestor, if their CB is higher than that element. A scrolling ancestor is essentially equivalent to a `translate()` transform. Similar, fixpos and abspos can "escape" an `opacity`<1 ancestor. But opacity is essentially a pixel filter. However, when we added `transform`, `filter`, etc, which are transforms and pixel filters, we decided that these new properties forced the element to generate an abspos *and* fixpos CB, trapping the positioned elements. I'm not sure why we did that. Did we have a good reason? Was the scrolling/opacity thing weird or hard in some way, so we didn't want to spread it to more properties? Or was it just kinda a mistake; the transform/filter/etc implementations did the "obvious" thing to trap everything inside of themselves, forgetting that scrolling/opacity did the other thing? If there wasn't a great reason for this behavior divergence, could we... allow authors to opt out of it? With the resolution to add the abspos controls to `position` in #12607, we have the syntax space to do this. Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12678 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 28 August 2025 18:04:33 UTC