【发布时间】:2014-02-03 07:51:28
【问题描述】:
CSS 选择器从右到左解析,然后显示。
考虑到这一点,基于此代码:
<a href="#" class="myImage">
<img>
</a>
哪个性能更好?:
.myImage img
或
.myImage img:only-child
:only-child 是否有助于选择器选择的特异性?因此,与其最初匹配文档中的所有<img>,然后寻找父类,不如只匹配作为唯一子类的<img>(从而减少选择池)?
参考阅读:http://csswizardry.com/2011/09/writing-efficient-css-selectors/
编辑
找到进一步阅读:
关于 CSS3 选择器的可悲事实是,它们真的不应该 如果您关心页面性能,请完全使用。装饰你的标记 具有类和 id 并仅在那些上进行匹配,同时避免所有 使用兄弟、后代和子选择器实际上会产生一个 页面在所有浏览器中的性能都显着提高。
-David Hyatt(Safari 和 WebKit 的架构师,也曾在 Mozilla、Camino 和 Firefox 上工作) 来源:http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/
【问题讨论】:
-
你正在用这些选择器做两件不同的事情。首先,您必须尝试实现一些相关的东西才能进行比较。我相信,如果您尝试在 img 的唯一孩子上应用样式,那么显然这将是更好的选择,因为 img 会将样式应用于 .myImg 类中的所有 img,这是您不做的事情不想。
-
" :only-child 是否有助于选择器选择的特异性?"嗯,是的……这就是重点。
标签: performance css css-selectors pseudo-class