- From: Mayank via GitHub <sysbot+gh@w3.org>
- Date: Mon, 01 Jul 2024 14:29:35 +0000
- To: public-css-archive@w3.org
@bramus > I would expect `:root:has([popover]:popover-open)` to work in both cases. That's the thing, I would *not* expect this to work. `:root` is effectively the same as `html`, which does not exist inside shadow DOM. > I don’t think we should force authors to rewrite their stylesheets when using them inside a shadow root or not. Ironically, with this change, you would be forcing authors who rely on the current `:root` behavior to rewrite their stylesheets. For example, someone might have written something like `:root { height: 100% }` knowing that it only applies to `<html>` and not shadow-roots. --- I think it's worth focusing on @tabatkins and @lukewarlow's [discussion](https://github.com/w3c/csswg-drafts/issues/10492#issuecomment-2190028991) for a second. `:host` refers to the host element in light DOM. `:host(:has())` wouldn't check for the presence of elements inside the shadow-tree. It would look only in the light tree, because that's where the element is. For example, this works in Firefox and Safari today (but not in Chrome?): ```html <div> <template shadowrootmode="open"> <style> :host(:has(p)) { color: red; } </style> <slot></slot> </template> <p>Red in the light DOM</p> </div> ``` --- @Th3S4mur41 I should point out that a `:shadowroot`-like selector is also being [discussed](https://github.com/WICG/webcomponents/issues/1053) to allow styling shadow-tree elements from the outside. I imagine it would it would be used like `my-component:shadowroot(div)`. Maybe the two ideas would conflict, or maybe they could be made to work together. -- GitHub Notification of comment by mayank99 Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/10492#issuecomment-2200321265 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Monday, 1 July 2024 14:29:36 UTC