Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CSS子选择器会更快吗?_Css_Performance_Css Selectors - Fatal编程技术网

使用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行时,执行时间的差异才具有统计意义。

让我向您展示选择器的效率顺序,从最快到最慢,这是谷歌的一些结论:

  • id选择器(#myid)
  • 类选择器(.myclassname)
  • 标签选择器(div、h1、p)
  • 相邻选择器(h1+p)
  • 儿童选择器(ul>li)
  • 后代选择器(LIA)
  • 星形选择器(*)
  • 属性选择器(a[rel=“external”])
  • 伪类选择器(a:悬停,li:第n个子项)
  • 它可能不完全正确,也不适合各种浏览器,但此顺序仍可供参考。希望有帮助


    要了解更多有关CSS性能的信息,请参阅:

    我怀疑
    p>a
    ,但时间可能很短。您的基准测试说明了什么?更多信息,ie6不支持子选择器。今天唯一关心ie6的人可能已经知道了这一点。有一个答案,现在已删除,提到了以下事实:两个选择器所做的事情完全不同,因此不应仅以性能进行比较。我不明白为什么它会被视为“无用”或者不相关。考虑到HTML中
    p
    a
    元素的性质,您发现自己处理
    a
    元素
    pa
    而不是
    p
    的可能性并不是微不足道的。而且,基于Niels Keurentjes的回答,我可以保证,您在t之前很久就会遇到这种情况他的特定选择器曾经成为一个瓶颈。从我的回答中得出的结论确实应该是——在问题出现之前,永远不要解决问题。CSS成为现实性能问题的可能性非常低,甚至比所有过早的微优化都要低,出现错误的机会根本不值得。编写正确的声明,并在一个完成的站点上消除瓶颈。我认为这个问题本质上更具理论性,而不是真正想要开始选择一个而不是另一个。为什么我应该相信一个随机列出的虚构统计数据,以及一些糟糕的术语来引导,作为权威?@BoltClock这可能并不适合所有人sers。我只是引用了其他人的结论。要了解更多信息,请参阅:如果你指的是你没有写的内容,你需要引用复制的内容,并在回答中引用来源。请参阅不要等到别人提示你在事后链接到来源,否则会有人认为你是自己写的lf(就像我之前做的那样)。谢谢你指出问题@BoltClock,我已经改进了答案,将来会更严肃。@BoltClock我很欣赏你的讽刺言论。你的暗示非常清楚,不需要任何详细说明。
    p > a