-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
:has() pseudo-class #134
Comments
There's a massive amount of invalidation tests for :has() in https://wpt.fyi/results/css/selectors/invalidation |
It would be great to help update the MDN BDC data for |
@jensimmons can you file an issue at https://github.com/mdn/browser-compat-data/issues? That sounds valuable, but I think some guidance is needed to get it right. In particular, what the distinct possibilities are, is |
@foolip Good idea. Done: mdn/browser-compat-data#17818
|
Support |
Adding to the rationale, |
Thank you for proposing We are pleased to let you know that this proposal was accepted as the For an overview of our process, see the proposal selection summary. Thank you for contributing to Interop 2023! Posted on behalf of the Interop team. |
Description
The :has() pseudo-class fulfills the decades-long desire for a "parent selector", while adding even more power to CSS.
:has( )
allows other selectors as arguments, including :pseudo-classes. Exactly which :pseudo-classes are supported is likely not yet 100% interoperable. As of the writing of this article, for example, Safari supports: :nth-child, :nth-last-child, :first-child, :last-child, :only-child, :nth-of-type, :nth-last-of-type, :first-of-type, :last-of-type, :only-of-type, :modal, :target. And does not yet support dynamic media pseudo-classes like :playing, :paused, :muted, etc. It would be useful to align browsers on which :pseudo-classes are supported.Pseudo-elements should not be allowed inside :has(). And there are other disallowed things, including :has() — you cannot create :has(:has()). Making sure browsers are interoperable on what they disallow is also useful for web developers.
There is no part of the definition of :has() that should not be included in Interop 2023.
Rationale
Listed as number two in 2021 State of CSS
Specification
https://drafts.csswg.org/selectors-4/#relational
Tests
Existing tests:
More tests may be needed,
including for invalidation.The text was updated successfully, but these errors were encountered: