nth-match应该按照以下方式在jsfiddle中工作
:nth-match(even of p,h3) {text-decoration: underline;}
这应该强调每一秒p
和h3
元素。但是,它不起作用 - 无论是在FF还是在Chrome中:
问题出在哪里?
答案 0 :(得分:8)
问题出在哪里?
问题在于,您将早期草稿中的想法和提案视为实际功能,通过使用它们并期望它们可以工作,更不用说跨浏览器了。查看status of the WD:
这是一份草案文件,可能随时被其他文件更新,替换或废弃。除了正在进行的工作之外,引用此文档是不恰当的。
案例::nth-match()
不再存在。好吧,至少不是那种形式。它的功能(即接受匹配的选择器参数)并没有完全消失;相反,它被归入:nth-child()
,只有two weeks after this question was originally posted。您可以在the :nth-child()
section of the latest ED中看到这一点。
这是因为,与传统的:nth-child()
一样,它只匹配共享同一父节点的一组兄弟节点中的元素。旧名称意味着文档范围内的匹配,即作者希望以下内容匹配,但the WD never says that:
:nth-match(even of p) { text-decoration: underline; }
<p></p>
<div>
<p></p> <!-- This should not match -->
</div>
旧名称已不再使用,您的小提琴可能永远不会在任何浏览器中使用。此外,自2013年5月以来,还没有成为新的WD,所以它应该被认为是过时的。
即使在我们发言的情况下,Selectors 4规范的这些重大变化仍在进行中,我不希望任何新功能在短期内实现。
答案 1 :(得分:5)
CSS4选择器目前没有太多的浏览器支持,see here。
您可以使用nth-of-type
,这是一个具有更强浏览器支持的CSS3选择器(see here):
p:nth-of-type(even) {text-decoration: underline;}
答案 2 :(得分:3)
我一直在搜索,似乎 CSS4 选择器:nth-match
没有太多支持(如果有的话)。
您可以在此处测试:http://css4-selectors.com/browser-selector-test/
注意:以下是:nth-match pseudo-class上的w3.org文档。