CSS 伪类函数 :is() 将参数作为选择器列表,因此目标是列表中任何选择器可以选择的任何元素。
伪类 :is():
以更紧凑的形式简化了需要编写的大量选择器。
简化了节选择器即在处理不同级别的 HTML 部分和标题时,例如 <section>、<article>、<aside> 和 <nav>。
不选择伪元素。请参阅下面的语法,这些是不允许的:
sample-element:is(::before, ::after) { display: block; }
:is(sample-element::before, sample-element::after) { display: block; }
这个伪类最初被称为 :matches (和 :any())。
伪元素作为 :is() 伪类的选择器列表中的值无效。
:is() 与 :where ()
:is() 负责计数列表中所有选择器中更具体的选择器,而 :where() 保留特异性值 0。
宽容选择器解析
使用:is()和:where(),当其中一个选择器无法解析时,而不是整个选择器列表被视为无效,只有不正确或不受支持的选择器会被忽略,而其余的选择器会被使用。
:is(:valid, :unsupported) - 这将正确解析并匹配 :valid ,即使浏览器不支持 :unsupported。
语法
:is(<forgiving-selector-list>) {
/* ... */
}
CSS :is 示例
以下示例演示使用 :is() 函数伪类。这里,:is() 伪类函数应用于 h1、h2、h3 和 a 元素。因此,无论在哪里找到这些元素,都会应用适当的样式:
<html>
<head>
<style>
body {
font: 300 90%/1.4 system-ui;
margin: 1rem;
}
main :is(h1, h2, h3) {
color: green;
}
main :is(a) {
color: red;
font-size: large;
}
</style>
</head>
<body>
<main>
<h1>:is() 伪类函数示例</h1>
<h3>君不见,黄河之水天上来,奔流到海不复回。</h3>
<a href="">君不见,高堂明镜悲白发,</a>. <p>朝如青丝暮成雪。</p>
<h2>人生得意须尽欢,莫使金樽空对月。</h2>
<p>天生我材必有用,千金散尽还复来。</p>
<p>烹羊宰牛且为乐,会须一饮三百杯。</p>
<h3>岑夫子,丹丘生,将进酒,杯莫停。</h3>
<p>与君歌一曲,请君为我倾耳听。</p>
<p>钟鼓馔玉不足贵,但愿长醉不愿醒。 <a href="">test</a> 古来圣贤皆寂寞,惟有饮者留其名。</p>
</main>
</body>
</html>