Skip to content

[selectors-4] Allow more pseudo-classes following a pseudo-element #7085

@cdoublev

Description

@cdoublev

There is already an issue mentioned in 3.6.3. Pseudo-classing Pseudo-elements (I did not find the corresponding issue on GH):

A pseudo-element may be immediately followed by any combination of the user action pseudo-classes [...]

ISSUE 3 Clarify that :not() and :is() can be used when containing above-mentioned pseudos.

I think the issue can be completed with:

  • all pseudo-classes: when following a pseudo-element explicitly defined to be matchable by this pseudo-class (eg. ::shadow:empty, ::shadow:defined, ::shadow-child:first-child, etc)
  • :where(): when containing user-action pseudo-classes as arguments
  • :defined: I'm not sure about this one because it is defined as matching elements that are fully defined, as dictated by the host language, not as matching pseudo-element

Pseudo-class functions which do not match the corresponding (pseudo-element) sub-classing condition could be considered as matching nothing instead of being invalid.

But I wonder if I'm missing something because:

  • ::before:hover does not work in Chrome/Firefox (not tested in other browsers)
  • MDN browser compat table includes Pseudo-element support with support from early versions of all browsers: is it the support of :hover followed by a pseudo-element, or the other way around? The french version defines that the :hover pseudo-class can follow any pseudo-element, but not the english version. Non-english versions are often translations of the english text.
  • I could not find any related issues on Chromium Issues or Mozilla Firebug Bugzilla
  • EDIT: I missed the related issue on Bugzilla and created an issue on Chromium Issues
  • Chrome DevTools does not allow to simulate user-action pseudo-classes like :hover on a pseudo-element (cf. this SO issue)
  • Firefox DevTools allows to set :hover but it triggers this state on the originating element

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions