我有一个奇怪的例子,试图结合两个伪类::not和:nth-of-type()来获取非隐藏项目的彩虹条带化
有一个:not([selector]):nth-of-type([rule]),我假设css会在应用:nth-of-type规则之前先过滤:not items,但是按任意顺序排列它们会给我同样的结果.
这是一个证明这一点的jsfiddle:http://jsfiddle.net/j7hjU/
在做这些事情时,我可能会忽略一些事情
解决方法
I assumed css wouuld filter the :not items first before applying the :nth-of-type
不. CSS完全是声明性的;每个选择器都是一个简单的条件,它是真或假的,与任何选择器部分无关.它不是一种程序性语言,你可以使用它来处理它并逐步缩小它.具有程序规则的选择器语言将不受多种优化的影响,并且会更慢.
所以nth-of-type只是关于元素父级中的位置,而不是位于“结果列表到目前为止”,因为CSS选择器没有这样的概念.选择器引擎可以在没有缩小它之前查找第n个类型的测试,因为规则不会相互干扰.