使用CSS子选择器会更快吗?
如果我们想在一个段落中定位一个链接,那么哪个选择器会更高效/更快使用CSS子选择器会更快吗?,css,performance,css-selectors,Css,Performance,Css Selectors,如果我们想在一个段落中定位一个链接,那么哪个选择器会更高效/更快 p a 或 第二个(非常)稍微快一点。CSS是由浏览器反向处理的,因此这两个规则都会在页面上的所有a元素上进行测试。对于第二个规则,它只需要测试直接父级,对于另一个规则,它需要测试整个子代链 在实践中,只有在一个页面上有数万行这样的HTML行时,执行时间的差异才具有统计意义。让我向您展示选择器的效率顺序,从最快到最慢,这是谷歌的一些结论: id选择器(#myid) 类选择器(.myclassname) 标签选择器(div、h1、
p a
或
第二个(非常)稍微快一点。CSS是由浏览器反向处理的,因此这两个规则都会在页面上的所有a
元素上进行测试。对于第二个规则,它只需要测试直接父级,对于另一个规则,它需要测试整个子代链
在实践中,只有在一个页面上有数万行这样的HTML行时,执行时间的差异才具有统计意义。让我向您展示选择器的效率顺序,从最快到最慢,这是谷歌的一些结论:
要了解更多有关CSS性能的信息,请参阅:我怀疑
p>a
,但时间可能很短。您的基准测试说明了什么?更多信息,ie6不支持子选择器。今天唯一关心ie6的人可能已经知道了这一点。有一个答案,现在已删除,提到了以下事实:两个选择器所做的事情完全不同,因此不应仅以性能进行比较。我不明白为什么它会被视为“无用”或者不相关。考虑到HTML中p
和a
元素的性质,您发现自己处理a
元素pa
而不是p
的可能性并不是微不足道的。而且,基于Niels Keurentjes的回答,我可以保证,您在t之前很久就会遇到这种情况他的特定选择器曾经成为一个瓶颈。从我的回答中得出的结论确实应该是——在问题出现之前,永远不要解决问题。CSS成为现实性能问题的可能性非常低,甚至比所有过早的微优化都要低,出现错误的机会根本不值得。编写正确的声明,并在一个完成的站点上消除瓶颈。我认为这个问题本质上更具理论性,而不是真正想要开始选择一个而不是另一个。为什么我应该相信一个随机列出的虚构统计数据,以及一些糟糕的术语来引导,作为权威?@BoltClock这可能并不适合所有人sers。我只是引用了其他人的结论。要了解更多信息,请参阅:如果你指的是你没有写的内容,你需要引用复制的内容,并在回答中引用来源。请参阅不要等到别人提示你在事后链接到来源,否则会有人认为你是自己写的lf(就像我之前做的那样)。谢谢你指出问题@BoltClock,我已经改进了答案,将来会更严肃。@BoltClock我很欣赏你的讽刺言论。你的暗示非常清楚,不需要任何详细说明。
p > a