Re: [csswg-drafts] [selectors-4] [css-nesting-1] pseudo elements need to be clarified to correctly handle relative selectors. (#7979)

Yup, that is all correct.
I opened this issue because I think there is some ambiguity between the wording and the intention. I might be wrong about that.

`.foo::before` is not a a single compound selector where both `.foo` and `::before` are "attributes" of the same element. `.foo` is a class on one element and `::before` is a pseudo element. This makes `.foo::before` more like a complex selector.

This is also clear from `.foo::before:hover` vs. `.foo:hover::before`.

- Is there an implicit combinator involved with pseudo elements?
- If there is an implicit combinator how does it affect relative selectors?

This is related to : https://github.com/w3c/csswg-drafts/issues/7346

> It'd be great if we had a way to achieve this, such as:
>
>`:>` - select child pseudo elements. As in, `div :> before :> marker` would be equivalent to div::before::marker
>`:>>` - select descendant pseudo elements. As in, `div :>> marker` would enable the use-case above.

If such a combinator is ever introduced we would have a difference between :

```css
.foo {
  /* a true combinator -> .foo::before */
  :> before {}

  /* implied combinator -> .foo ::before */
  ::before {}
}
```

-- 
GitHub Notification of comment by romainmenke
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7979#issuecomment-1298312135 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 1 November 2022 10:16:42 UTC