gpt4 book ai didi

css - .something :first-child as a selector? 的性能

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:34 25 4
gpt4 key购买 nike

下面的选择器是否可能存在性能问题?

.div-class :first-child {
margin-top: 20px;
}

我读到在另一个选择器中使用 * 选择器很慢。大概上面的内容实际上与此相同?

.div-class *:first-child {
margin-top: 20px;
}

这是针对我认为会夸大任何问题的移动网站。

更新 - 我想我一直不清楚我在问什么。我想知道这些选择器是否对性能不利?

最佳答案

是的,它们在功能上是等价的。添加 * 字符本身的成本应该几乎为零,因为您只是明确指定了无论如何都隐含的内容。

至于 *:first-child 是否慢,没有确定的答案——它不仅取决于你的布局,而且在很大程度上取决于你无法控制的外部因素,包括两者硬件功能和浏览器实现。您最好的选择是尽可能运行您自己的基准测试。

就我个人而言,我会避免担心它,直到我确定它是瓶颈发生的地方。

我可以建议(但不保证它会有所帮助)的一件事是,如果 .div-class 只会有一个级别的后代,您可以用直接后代替换后代组合器组合器:

.div-class > :first-child {
margin-top: 20px;
}

这限制了对直接祖先的查找,因此浏览器只需要决定每个第一个 child 的父级是否是 .div-class,而不必继续查找更多的祖先。这将有助于处理完全位于任何 .div-class 层次结构之外的元素。

同样,这假设了后代和子组合子的简单实现,所以我不能保证它真的会提高渲染性能。但是,根据您的布局,它可能值得一试。

关于css - .something :first-child as a selector? 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24016306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com