Функциональные псевдоклассы is() и where()
Псевдокласс match-any :is() - это функциональный псевдокласс, принимающий
Он сопостовляется с любым селектором из переданного списка, но его специфичность равна наибольшей среди элементов списка. Поясним на примере.
С первого взгляда можно подумать что это просто синтаксический сахар
То есть вот в такой ситуации цвет будет красный:
Иллюстрируем тем же примером, цвет будет синий:
#selectors #pseudo_class #function_pseudo_class
Псевдокласс match-any :is() - это функциональный псевдокласс, принимающий
<forgiving-selector-list>
в качестве единственного аргумента.Он сопостовляется с любым селектором из переданного списка, но его специфичность равна наибольшей среди элементов списка. Поясним на примере.
С первого взгляда можно подумать что это просто синтаксический сахар
:is(.a, .b) .c === .a .c, .b .c
. Однако :is(#id, .b) .c !== #id .c, .b .c
.То есть вот в такой ситуации цвет будет красный:
<div class="a">Lorem</div>
<style>
:is(#id, .a) {color: red;}
.a {color: blue;}
</style>
Псевдокласс регулировки специфичности :where() - это функциональный псевдокласс с тем же синтаксисом и функциональностью, что и :is()
. НО, в отличие от :is()
, ни псевдокласс :where ()
, ни какие-либо из его аргументов не влияют на специфичность селектора - она всегда равна нулю.Иллюстрируем тем же примером, цвет будет синий:
<div class="a">Lorem</div>
<style>
:where(#id, .a) {color: red;}
.a {color: blue;}
</style>
Оба псевдокласса поддерживаются в FireFox начиная c 78 версии и в Safari c 14.#selectors #pseudo_class #function_pseudo_class