优化CSS选择器。 `* + p`比'p + *`更省钱

时间:2014-04-22 09:12:07

标签: css optimization

根据我对浏览器的了解' CSS处理算法,选择器*+p的性能影响小于p+*,不是吗?

因此,在p+*浏览器中,扫描页面上的所有元素,并跟随p后面的那些元素应用相应的规则。 在*+p中,它首先只查找p,但它会在p之前找到一些元素后立即停止搜索,从而减少搜索迭代次数&#34 ;?或者*仍会扫描所有内容。

此外,哪些工具可以显示CSS加载时间和其他重量级'信息。只找到那些搜索未使用或超额规则并压缩CSS以获得更小尺寸的那些。

在上下文中 - 我需要将top-margin应用于p之后的任何元素(p+p除外),内容是动态生成的。 读过旧的浏览器遭受了很多普遍的选择,这个问题就出现了。

2 个答案:

答案 0 :(得分:1)

  

我需要将top-margin应用于p后面的任何元素(p + p除外)

What about:

p + :not(p) {
    background:red;
}

就性能/效率而言,请查看Page Speed(FF)或Speed Tracer(Chrome)浏览器扩展程序,这两种扩展程序都可以帮助您分析/识别问题CSS。

答案 1 :(得分:1)

如果只为所有p元素添加下边距,那么结果是否相同呢?然后,您可以为p+p添加一个带有负上边距的规则来抵消效果,例如:

p {
    margin-bottom: 10px;
}

p + p {
    margin-top: -10px;
}