我们能否使用新的 CSS :is() 伪 class 实现我们无法通过逗号分隔查询实现的任何目标?

Can we achieve anything with the new CSS :is() pseudo-class that we can't already achieve with comma-separated queries?

我一直在阅读伪-classes CSS 选择器级别 4.

伪class :is() 立即引起了我的注意,但在短暂的热情之后......我突然不确定它是否引入了任何新功能。

A Guide To Newly Supported, Modern CSS Pseudo-Class Selectors 中,Stephanie Eckles 介绍了几个用例,包括:

看起来不错,但是...这些不只是 别名 为:

除了上面的第五点之外,逗号分隔的选择器列表实际上更短(并且可能更有效)比 :is() 伪 class 语法...主要是因为 :is() 函数只是用来将该列表(已经代表有效语法)括在括号中。

我错过了什么吗?是否可以使用 :is() 做一些更聪明的事情,将逗号分隔的 CSS 选择器列表留在后面?

您实际上处理的是基本示例,但考虑更复杂的示例,如下所示:

.box h1, .box h2, .box h3, .box h4

为了避免重复.box我们使用

.box :is(h1, h2, h3, h4)

据我所知,这是 :is() 的主要动机:避免规则重复。

另一个常见的例子是 table 选择器:

table tr td, table tr th

现在会变成

table tr :is(td, th)