[csswg-drafts] [selectors‑5] Making `::` a (pseudo‑)combinator (#5472)

ExE-Boss has just created a new issue for https://github.com/w3c/csswg-drafts:

== [selectors‑5] Making `::` a (pseudo‑)combinator ==
Due to backwards compatibility issues, `::` can’t be a proper combinator (see <https://github.com/w3c/csswg-drafts/issues/2284#issuecomment-364580632>).

There’s however nothing preventing us from making `::` a combinator‑like thing that would mostly preserve the current semantics while allowing for <https://github.com/w3c/csswg-drafts/issues/2284#issuecomment-679249349> and <https://github.com/w3c/csswg-drafts/issues/4565>.

---

The goal is to support:

```css
* :: *:is(before, after, marker) { … }
/* being roughly equivalent to: */
*::before, *::before::marker,
*::after, *::after::marker,
*::marker,

*::slotted(*)::before, *::slotted(*)::before::marker,
*::slotted(*)::after, *::slotted(*)::after::marker,
*::slotted(*)::marker,

*::part(*)::before, *::part(*)::before::marker,
*::part(*)::after, *::part(*)::after::marker,
*::part(*)::marker { … }
```

But for backwards compatibility:

```css
*::*:is(before, after, marker) { … }
/* meaning: */
*::before, *::after, *::marker { … }
```

and

```css
* ::*:is(before, after) { … }
/* meaning: */
* ::before, * ::after, * ::marker { … }
```

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/5472 using your GitHub account


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

Received on Wednesday, 26 August 2020 12:20:59 UTC