1

我有一个尝试结合两个伪类的奇怪案例::not:nth-of-type()在非隐藏项目上获得彩虹条纹

拥有一个:not([selector]):nth-of-type([rule]),我假设 css 会:not在应用规则之前先过滤项目:nth-of-type,但是以任何顺序排列它们都会给我相同的结果。

这是一个演示这一点的 jsfiddle:http: //jsfiddle.net/j7hjU/

做这些时我可能会忽略一些东西吗?

4

3 回答 3

6

我假设 css 在应用 :nth-of-type 之前会先过滤 :not 项目

没有。CSS 是完全声明性的;每个选择器都是一个简单的条件,它独立于任何选择器部分为真或假。它不是一种程序语言,您可以在其中获取一组并对其进行处理,并逐步缩小范围。具有过程规则的选择器语言将不受多种优化的影响,并且速度较慢。

所以nth-of-type只是关于元素父级中的位置,而不是“到目前为止的结果列表”中的位置,因为 CSS 选择器没有这样的概念。nth-of-type选择器引擎可以在使用 缩小测试范围之前查找测试not,因为规则不会相互干扰。

于 2012-08-30T21:31:53.840 回答
0

这似乎是这个问题的重复:Css coloring table problem

答案基本上是否定的,但您可以将一个类应用于可见行以使其工作。

于 2012-08-30T21:39:49.747 回答
-2

CSS 从右到左解析。您是否尝试过翻转:notand :nth-of-type

为什么浏览器从右到左匹配 CSS 选择器?

于 2012-08-30T21:30:35.770 回答