我多次使用 :last-child
选择器,主要是在我使用 border: none;
的列表中使用 border-bottom
时> 对于最后一个 child ,或使用边距时。所以我的问题是,从性能的 Angular 来看,:last-child
选择器是否不好?
我还听说它已从 CSS2 规范中删除,因为使用 :first-child
很容易被浏览器检测到,但检测 :last-child
它需要环回。
最佳答案
如果它因性能问题而从 CSS2 中推迟,但在 Selectors 3 中重新引入,我怀疑这是因为性能不再像以前那样成为问题。
请记住,:last-child
是选择父项的最后一个子项的最终且唯一方法(除了 : nth-last-child(1)
,很明显)。如果浏览器实现者不再有性能问题,我们作为作者也不应该。
我能想到的使用 :first-child
而不是 :last-child
覆盖边框样式的唯一令人信服的原因是允许与 IE7 和 IE8 兼容.如果这能提高性能,那就让它成为副作用吧。如果您不需要 IE7 和 IE8 支持,那么您不应该被迫使用 :first-child
而不是 :last-child
.即使浏览器性能绝对至关重要,您也应该通过测试和基准测试以正确的方式解决它,而不是通过过早的优化。
关于performance - 是:last-child selector bad for performance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16144036/