coderef

:is()Baseline · Widely available

The :is() CSS functional pseudo-class takes a selector list as its argument, and matches any element that can be selected by one of the selectors in that list.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Jan 21, 2021. Widely available since Jul 21, 2023.

Browser support

DesktopChrome
1–87Not supported
88+Supportedsince Jan 19, 2021
Current: 155
Edge
12–87Not supported
88+Supportedsince Jan 21, 2021
Current: 154
Firefox
1–81Not supported
82+Supportedsince Oct 20, 2020
Current: 157
Safari
1–13.1Not supported
14+Supportedsince Sep 16, 2020
Current: 27
MobileChrome Android
18–87Not supported
88+Supportedsince Jan 19, 2021
Current: 155
Firefox Android
4–81Not supported
82+Supportedsince Oct 20, 2020
Current: 157
Safari iOS
1–13.4Not supported
14+Supportedsince Sep 16, 2020
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

CSS
/* Instead of: header a:hover, nav a:hover, footer a:hover */
:is(header, nav, footer) a:hover {
  text-decoration: underline;
}

Feature detection

CSS · check before using
@supports selector(:is(*)) {
  /* styles that use :is(*) */
}

/* or in JavaScript */
if (CSS.supports("selector(:is(*))")) {
  // use it
}

Sub-features

Support for each part of the feature (2). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
is88887814887914
is.forgiving_selector_list88888214888214