:matches() CSS pseudo-class
:matches() CSS pseudo-class
The :matches()
(formerly :any()
) pseudo-class checks whether the element at its position in the outer selector matches any of the selectors in its selector list. It's useful syntactic sugar that allows you to avoid writing out all the combinations manually as separate selectors. The effect is similar to nesting in Sass and most other CSS preprocessors.
Spec | https://www.w3.org/TR/selectors4/#matches |
---|---|
Status | W3C Working Draft |
IE | Edge | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
57 (3,*) | 62 (1,*) | ||||
56 (3,*) | 61 (1,*) | TP (2) | 48 (1,*) | ||
16 | 55 (3,*) | 60 (1,*) | 11 (2) | 47 (1,*) | |
11 | 15 | 54 (3,*) | 59 (1,*) | 10.1 (2) | 46 (1,*) |
10 | 14 | 53 (3,*) | 58 (1,*) | 10 (2) | 45 (1,*) |
9 | 13 | 52 (3,*) | 57 (1,*) | 9.1 (2) | 44 (1,*) |
8 | 12 | 51 (3,*) | 56 (1,*) | 9 (2) | 43 (1,*) |
Show all | |||||
7 | 50 (3,*) | 55 (1,*) | 8 (1,*) | 42 (1,*) | |
6 | 49 (3,*) | 54 (1,*) | 7.1 (1,*) | 41 (1,*) | |
5.5 | 48 (3,*) | 53 (1,*) | 7 (1,*) | 40 (1,*) | |
47 (3,*) | 52 (1,*) | 6.1 (1,*) | 39 (1,*) | ||
46 (3,*) | 51 (1,*) | 6 (1,*) | 38 (1,*) | ||
45 (3,*) | 50 (1,*) | 5.1 (1,*) | 37 (1,*) | ||
44 (3,*) | 49 (1,*) | 5 | 36 (1,*) | ||
43 (3,*) | 48 (1,*) | 4 | 35 (1,*) | ||
42 (3,*) | 47 (1,*) | 3.2 | 34 (1,*) | ||
41 (3,*) | 46 (1,*) | 3.1 | 33 (1,*) | ||
40 (3,*) | 45 (1,*) | 32 (1,*) | |||
39 (3,*) | 44 (1,*) | 31 (1,*) | |||
38 (3,*) | 43 (1,*) | 30 (1,*) | |||
37 (3,*) | 42 (1,*) | 29 (1,*) | |||
36 (3,*) | 41 (1,*) | 28 (1,*) | |||
35 (3,*) | 40 (1,*) | 27 (1,*) | |||
34 (3,*) | 39 (1,*) | 26 (1,*) | |||
33 (3,*) | 38 (1,*) | 25 (1,*) | |||
32 (3,*) | 37 (1,*) | 24 (1,*) | |||
31 (3,*) | 36 (1,*) | 23 (1,*) | |||
30 (3,*) | 35 (1,*) | 22 (1,*) | |||
29 (3,*) | 34 (1,*) | 21 (1,*) | |||
28 (3,*) | 33 (1,*) | 20 (1,*) | |||
27 (3,*) | 32 (1,*) | 19 (1,*) | |||
26 (3,*) | 31 (1,*) | 18 (1,*) | |||
25 (3,*) | 30 (1,*) | 17 (1,*) | |||
24 (3,*) | 29 (1,*) | 16 (1,*) | |||
23 (3,*) | 28 (1,*) | 15 (1,*) | |||
22 (3,*) | 27 (1,*) | 12.1 | |||
21 (3,*) | 26 (1,*) | 12 | |||
20 (3,*) | 25 (1,*) | 11.6 | |||
19 (3,*) | 24 (1,*) | 11.5 | |||
18 (3,*) | 23 (1,*) | 11.1 | |||
17 (3,*) | 22 (1,*) | 11 | |||
16 (3,*) | 21 (1,*) | 10.6 | |||
15 (3,*) | 20 (1,*) | 10.5 | |||
14 (3,*) | 19 (1,*) | 10.0-10.1 | |||
13 (3,*) | 18 (1,*) | 9.5-9.6 | |||
12 (3,*) | 17 (1,*) | 9 | |||
11 (3,*) | 16 (1,*) | ||||
10 (3,*) | 15 (1,*) | ||||
9 (3,*) | 14 | ||||
8 (3,*) | 13 | ||||
7 (3,*) | 12 | ||||
6 (3,*) | 11 | ||||
5 (3,*) | 10 | ||||
4 (3,*) | 9 | ||||
3.6 | 8 | ||||
3.5 | 7 | ||||
3 | 6 | ||||
2 | 5 | ||||
4 |
iOS Safari | Opera Mini | Android Browser | Blackberry Browser | Opera Mobile | Android Chrome | Android Firefox | IE Mobile | Android UC Browser | Samsung Internet | QQ Browser | Baidu Browser |
---|---|---|---|---|---|---|---|---|---|---|---|
11 (2) | |||||||||||
10.3 (2) | all | 56 (1,*) | 10 (1,*) | 37 (1,*) | 59 (1,*) | 54 (3,*) | 11 | 11.4 (1,*) | 5 (1,*) | 1.2 (1,*) | 7.12 (1,*) |
10.0-10.2 (2) | 4.4.3-4.4.4 (1,*) | 7 | 12.1 | 10 | 4 (1,*) | ||||||
9.3 (2) | 4.4 (1,*) | 12 | |||||||||
9.0-9.2 (2) | 4.2-4.3 (1,*) | 11.5 | |||||||||
Show all | |||||||||||
8.1-8.4 (1,*) | 4.1 (1,*) | 11.1 | |||||||||
8 (1,*) | 4 (1,*) | 11 | |||||||||
7.0-7.1 (1,*) | 3 | 10 | |||||||||
6.0-6.1 | 2.3 | ||||||||||
5.0-5.1 | 2.2 | ||||||||||
4.2-4.3 | 2.1 | ||||||||||
4.0-4.1 | |||||||||||
3.2 |
Notes
Most browsers support this spelled as a prefixed :-vendor-any()
pseudo-class.
Only supports the
:-webkit-any()
pseudo-class, which is deprecated due to handling specificity incorrectly.Also supports the
:-webkit-any()
pseudo-class, which is deprecated due to handling specificity incorrectly.Only supports the
:-moz-any()
pseudo-class.
- * Partial support with prefix.
Resources
- Mozilla Developer Network (MDN) documentation - CSS :any
- WebKit blog post about adding `:matches()` and other Selectors Level 4 features
- Mozilla Bug 906353 - Add support for css4 selector :matches(), the standard of :-moz-any()
- Microsoft Edge UserVoice feature request for :matches()
- JS Bin testcase
- Issue 568705: Chrome does not support :matches() selector
Data by caniuse.com
Licensed under the Creative Commons Attribution License v4.0.
http://caniuse.com/#feat=css-matches-pseudo