- From: Steve Kobes (Chromium) via GitHub <noreply@w3.org>
- Date: Wed, 19 Nov 2025 18:04:50 +0000
- To: public-css-archive@w3.org
I have been trying to understand the resolution in https://github.com/w3c/csswg-drafts/issues/12324#issuecomment-3530620798 via discussion with @flackr and @vmpstr. Our current interpretation I believe is as follows: * The WG raised a concern that if the `::v-t` is an abs-pos sibling of the scope then it can escape ancestor clips in ways the scope itself does not. This is a valid concern that I had not thought of before. I made some quick demos to prove this to myself: [sibling](https://output.jsbin.com/capeduw/), [child](https://output.jsbin.com/rijetor/). * Based on such concerns the new plan is to not use anchor positioning but go back to having the `::v-t` pseudo be a layout-tree child of the scope, absolutely positioned with `inset: 0`. * Despite being laid out as a child the `::v-t` pseudo will have some "magical" sibling-like behaviors that ordinary DOM children don't have: (1) It is painted on top of everything else in the scope, including higher z-index children. (2) It is not affected by the scope's scroll offset, if the scope is a scroller. (3) It is not affected by clips or effects set on the scope itself(?) I think the idea of an abs-pos child of a containing-block scroller where the child is not affected by the scroll offset may be a brand new concept (for Chromium requiring adjustments to hit testing / geometry mapping logic as well as scroll tree construction). Note that scopes are always containing blocks since we apply `contain: layout` during transition ([crbug.com/434895697](https://crbug.com/434895697)). -- GitHub Notification of comment by skobes-chromium Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12324#issuecomment-3554010585 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Wednesday, 19 November 2025 18:04:51 UTC