我有一个尝试结合两个伪类的奇怪案例::not
并:nth-of-type()
在非隐藏项目上获得彩虹条纹
拥有一个:not([selector]):nth-of-type([rule])
,我假设 css 会:not
在应用规则之前先过滤项目:nth-of-type
,但是以任何顺序排列它们都会给我相同的结果。
这是一个演示这一点的 jsfiddle:http: //jsfiddle.net/j7hjU/
做这些时我可能会忽略一些东西吗?
我有一个尝试结合两个伪类的奇怪案例::not
并:nth-of-type()
在非隐藏项目上获得彩虹条纹
拥有一个:not([selector]):nth-of-type([rule])
,我假设 css 会:not
在应用规则之前先过滤项目:nth-of-type
,但是以任何顺序排列它们都会给我相同的结果。
这是一个演示这一点的 jsfiddle:http: //jsfiddle.net/j7hjU/
做这些时我可能会忽略一些东西吗?
我假设 css 在应用 :nth-of-type 之前会先过滤 :not 项目
没有。CSS 是完全声明性的;每个选择器都是一个简单的条件,它独立于任何选择器部分为真或假。它不是一种程序语言,您可以在其中获取一组并对其进行处理,并逐步缩小范围。具有过程规则的选择器语言将不受多种优化的影响,并且速度较慢。
所以nth-of-type
只是关于元素父级中的位置,而不是“到目前为止的结果列表”中的位置,因为 CSS 选择器没有这样的概念。nth-of-type
选择器引擎可以在使用 缩小测试范围之前查找测试not
,因为规则不会相互干扰。
这似乎是这个问题的重复:Css coloring table problem
答案基本上是否定的,但您可以将一个类应用于可见行以使其工作。
CSS 从右到左解析。您是否尝试过翻转:not
and :nth-of-type
?