CSS选择器由浏览器引擎从右到左匹配.因此,他们首先找到孩子,然后检查他们的父母,看看他们是否符合规则的其余部分.
对我来说,最简单的方法是使用元素数量最少的选择器.首先是ID(因为它们应该只返回1个元素).然后可能是类或具有最少节点数的元素 - 例如,页面上可能只有一个跨度,因此可以使用引用跨度的任何规则直接到达该节点.
以下是备份我的说法的一些链接
这听起来像这样做是为了避免必须看到父母的所有孩子(可能是很多孩子),而不是一个孩子的所有父母必须是一个孩子.即使DOM很深,它也只会在每个级别查看一个节点而不是RTL匹配中的多个节点.评估CSS选择器LTR或RTL更容易/更快?
我最近遇到了这个CSS选择器,同时试图找到一种方法来轻松区分主要的博客元素,如段落和图像.它的使用示例如下:
.post *+* {margin-top: 15px;}
/* or... */
.post > *+* {margin-top: 15px;}
/* if you don't want the margin to apply to nested elements */
Run Code Online (Sandbox Code Playgroud)
乍一看,它看起来非常有用.所以我的问题是:使用这些选择器有什么缺点?
特别:
这样的浏览器支持是什么?
在任何情况下你都不希望文章中的元素之间有均匀的边距,如果没有,是否更容易先声明它然后覆盖或简单地单独声明每个元素?
这是否有性能问题因为您选择了所有内容两次?