浏览器引擎从右到左匹配CSS选择器。因此,他们首先找到孩子,然后检查父母,看他们是否符合规则的其余部分。
- 为什么是这样?
- 只是因为规格说明吗?
- 如果从左到右进行评估,是否会影响最终的布局?
对我来说,最简单的方法是使用元素数量最少的选择器。因此,ID首先(因为它们只能返回1个元素)。然后,可能是类或具有最少节点数的元素-例如,页面上可能只有一个范围,因此请使用引用范围的任何规则直接转到该节点。
这是一些支持我的主张的链接
- http://code.google.com/speed/page-speed/docs/rendering.html
- https://developer.mozilla.org/en/Writing_Efficient_CSS
听起来这样做是为了避免查看父母的所有子代(可能很多),而不是查看必须是一个孩子的所有父代。即使DOM很深,它也只会在每个级别查看一个节点,而不是RTL匹配中的多个节点。评估CSS选择器LTR或RTL更容易/更快吗?
它允许从较具体到较不具体的级联。它还允许应用中发生短路。如果更具体的规则适用于父规则适用的所有方面,则所有父规则都将被忽略。如果父级中还有其他位,则会应用它们。
如果您采用其他方法,则将根据父项进行格式化,然后在子项每次有所不同时覆盖。从长远来看,这比忽略已经处理的规则中的项目要多得多。