通用和第n个子选择器之间的区别,以获得所有直接的孩子?

时间:2017-07-07 07:52:40

标签: css performance css-selectors

我想知道,如果在css之间获得每个直接孩子的区别

tag > *

tag > :nth-child(n)

我知道通用选择器很慢,但我不知道,nth-child选择器在幕后做了什么。

2 个答案:

答案 0 :(得分:1)

  

我知道通用选择器很慢

不,通用选择器,因为除了保证匹配之外它没有没有(很少有例外,但它们不适用于此处)。它唯一一次“慢”#34;当你有一个页面含有大量元素(大约数千个)时 - 浏览器必须在每个元素上运行它以确定它是否是任何父母的孩子。

使用:nth-child(n)不必要地要求浏览器评估n表达式,而不是立即匹配元素而不询问问题。即使浏览器确实优化了:nth-child(n),您也可以完全按照*的工作方式保留匹配。所以你真的只是浪费空间,使用:nth-child(n)(比*长12个字节),而不是仅仅使用*来获得任何计算收益。

坚持使用通用选择器。或者,如果你担心CSS选择器性能,你总是可以为每个所需的子元素添加一个类名,而选择该类,代价是标记膨胀。

答案 1 :(得分:0)

查看w3school:nth-​​child()选择器用于选择特定子项,但如果要从容器中选择所有内容,请使用*选择器。在使用:nth-​​child( n )的情况下,与使用*选择器相同,*使用更少的空间。

不知道它有帮助。