[csswg-drafts] [selectors] Make sure :is()/:not()/etc work well with pseudo-elements (#4417)

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

== [selectors] Make sure :is()/:not()/etc work well with pseudo-elements ==
In the past I've resisted things like `.foo:is(.bar, ::before)`, because the ::before part is technically changing the subject of the compound selector, something no other selector can do.

But this just leaves a functionality gap, since pseudo-elements don't have a combinator dedicated to them to allow matching plainly. Selector syntax is awkwardly designed around pseudo-elements, but we're stuck with it, and should accept that pseudo-elements are part of the compound selector grammar and are allowed to change the subject in a real way.

Thus we should make sure that :not()/etc work properly with them too.

(There's no reason to use :not() with any of the current pseudos, but `::part(foo):not(::part(bar))` makes sense and is useful.)

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

Received on Saturday, 12 October 2019 17:02:00 UTC