我读到在css中使用子选择器(>
)比后代选择器()更快。例如:
p > em
而非p em
。
在我看来,我在野外看到的大多数代码都没有利用这一点。
我理解某些情况值得使用其中一种,但总的来说,我是否应该尽可能地利用儿童选择器?或者我应该遵循什么似乎是惯例,主要依靠后代选择器?
答案 0 :(得分:11)
理论上,子选择器将比后代选择器更快,因为浏览器可以在第一级之后停止检查子节点。但是,我怀疑你从中看到的任何性能提升都可以忽略不计,因为浏览器首先会快速解析CSS。
正如NullUserException指出的那样,选择器在IE6中不起作用,所以如果你非常关心IE6,我就不会加载你的CSS。但要记住的一件好事是,您应该非常清楚在哪种情况下使用哪种方法。问问自己,“我是否希望此声明涵盖所有匹配的孩子,或者我是否希望它仅涵盖直接匹配的孩子?”问自己这样一个问题似乎显而易见,但这确实是你应该在两者之间做出选择的唯一方法。除非你的意思,否则不要使用>
。
另见我的问题Is there an advantage to using very specific selectors in CSS?