我有一个div,有一些孩子在顶部和底部有边框。我希望那个div的第一个孩子和最后一个孩子没有这些边界。执行.myDiv > :first-child
太慢了,因为:第一个孩子首先匹配页面上的所有第一个孩子。我可以在第一个元素中添加一个.first
类,但子元素并不总是保证在那里。确定哪个是最重要的元素会有复杂的逻辑。
实现这一目标的最佳做法是什么?
答案 0 :(得分:1)
如果你问这个问题,我猜你的页面上的渲染时间很慢。但我坚信你的慢页面渲染的原因可能不是由你在CSS上使用这个伪选择器引起的。可能有更重要的因素在上下文中起作用并降低整体页面性能。
您使用的是透明图片或元素吗?或者在JavaScript中使用伪选择器很多?
答案 1 :(得分:0)
不是你的问题的答案(它对于评论来说太大了),但是你真的有一个包含数千个元素的大页面,这些元素在使用慢速选择器时确实会出现性能问题吗?因为如果不是这样,我会说使用:first-child
伪类是完全没问题的。
想想每天使用JavaScript端DOM操作所做的所有更糟,更糟糕的性能暴行。从优化的角度来看,许多jQuery选择器都是一场灾难。然而,如今的平均计算机功能只是减轻了大多数性能问题。