In a nutshell:
E:has(rs1, rs2) E, F E. jQuery :has() , .
E:matches(s1, s2) E, E . :matches() :not(), E, E . 1 :matches() jQuery .filter().
E ( , ), (E)(s1), (E)(s2). , div:matches(.foo, .bar) div.foo, div.bar.
div:matches(p) div:has(p):
div:has(p) div, p.
div p, , div
p.
a div p, div:matches(p)
-. (, div:not(p) div.)
:
div:has(.foo, .bar)
div:matches(.foo, .bar)
:
<div class="foo"></div>
<div class="bar"></div>
<div class="foo bar">
<p></p>
</div>
<div>
<p class="foo"></p>
</div>
<div>
<div>
<p class="bar"></p>
</div>
</div>
<div>
<div class="foo">
<p class="bar"></p>
</div>
</div>
?
div:matches(.foo, .bar)
div "foo", div "bar", :matches().
div:matches(.foo, .bar)
div , .
: , (0, 1, 1), , , , .
div:has(.foo, .bar)
div ( a p) , :has().
div:has(.foo, .bar)
div div.foo p.bar, .
: :has() CSS, . CSS, . .
div:matches(.foo, .bar) div:has(.foo, .bar)
div :
div:matches(.foo, .bar):has(.foo, .bar), 4, .
:matches() :has() , :has() , . ; - , :has() , - :has(). , , , , >, + ~ - - , .
, :has() -, , +, -: ul:has(+ p) ul, p ( , p).
:matches(), , , AFAIK , ( ). - , Selectors 3 , - . . . , .
1 , "" - Selectors 4, :not() , . , .