- From: Guillaume via GitHub <sysbot+gh@w3.org>
- Date: Fri, 24 Feb 2023 09:19:05 +0000
- To: public-css-archive@w3.org
> As currently written, `::before&` is invalid as the selectors grammar only allows `<pseudo-class-selector>` after it. Please note that with `&::before`, the problem remains, depending on how you expect it to desugar, which seems to be by "moving" `&` to the end of the selector: > `type1 { &type2 {...}}` is indeed perfectly valid, equivalent to `type2:is(type1) {...}`. [...] > > `svg { &|rect {} }` is also valid, equivalent to `|rect:is(svg)` [...] `&::before` is a valid `<relative-selector-list>` but `::before:is(:root)` (desugared from `:root { &::before {} }`) is invalid, because `::before:root` is invalid, according to [Selectors](https://drafts.csswg.org/selectors-4/#pseudo-element-states): > Certain pseudo-elements may be immediately followed by any combination of certain pseudo-classe [...]. This specification allows any pseudo-element to be followed by any combination of the logical combination pseudo-classes and the user action pseudo-classes. [...] Combinations that are not explicitly allowed are invalid selectors. > > NOTE: The logical combination pseudo-classes pass any restrictions on validity of selectors at their position to their arguments. However the examples in the spec seems to remember its position. This is another reason why I commented: > First, I think an example showing that there is no difference between `div { &:hover {} }` and `div { :hover& {} }` would be usefull (whereas only `div:hover` is valid). -- GitHub Notification of comment by cdoublev Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7503#issuecomment-1443291841 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Friday, 24 February 2023 09:19:07 UTC