我想知道,如果在css之间获得每个直接孩子的区别
tag > *
和
tag > :nth-child(n)
我知道通用选择器很慢,但我不知道,nth-child选择器在幕后做了什么。
答案 0 :(得分:1)
我知道通用选择器很慢
不,通用选择器快,因为除了保证匹配之外它没有没有(很少有例外,但它们不适用于此处)。它唯一一次“慢”#34;当你有一个页面含有大量元素(大约数千个)时 - 浏览器必须在每个元素上运行它以确定它是否是任何父母的孩子。
使用:nth-child(n)
不必要地要求浏览器评估n
表达式,而不是立即匹配元素而不询问问题。即使浏览器确实优化了:nth-child(n)
,您也可以完全按照*
的工作方式保留匹配。所以你真的只是浪费空间,使用:nth-child(n)
(比*
长12个字节),而不是仅仅使用*
来获得任何计算收益。
坚持使用通用选择器。或者,如果你担心CSS选择器性能,你总是可以为每个所需的子元素添加一个类名,而选择该类,代价是标记膨胀。
答案 1 :(得分:0)
查看w3school:nth-child()选择器用于选择特定子项,但如果要从容器中选择所有内容,请使用*选择器。在使用:nth-child( n )的情况下,与使用*选择器相同,*使用更少的空间。
不知道它有帮助。