【发布时间】:2019-03-06 00:07:59
【问题描述】:
我正在清理一些旧的 CSS,但我不确定我是否已注释掉或删除了所有冲突的规则。该项目使用大量 CPU 进行渲染,这就是为什么我要问一个看起来相对较小的优化。
例如,如果我有这样的 CSS,浏览器会花时间在规则 color: red 上吗?
span {
color: red;
color: black;
}
在同一个块(上面)中覆盖的处理方式与下面的不同:
span {
color: red;
}
span {
color: black;
}
是否有一个很好的资源可供我参考,以了解从 CPU/GPU 的角度来看规则是如何处理的?有大量关于如何应用 CSS 规则的高级信息,但我想知道冲突规则会产生多大的差异。就我而言,我可能忽略的冲突规则通常比我上面给出的简单示例要复杂得多,涉及多个选择器、渐变、阴影等。
【问题讨论】:
-
这里可能有一些有趣的阅读,尽管它不是关于特别是冲突的规则benfrain.com/…
-
“是否有一个很好的资源可供我参考,以了解从 CPU/GPU 的角度来看规则是如何处理的?”可能不是因为这是一个实现细节,即使跨浏览器也不一定相同。级联解析是 CSS 处理的基本部分(它是“C”代表的意思),将其视为性能责任等同于将 CSS 本身视为性能责任。优化你的 CSS 不是为了避免像瘟疫那样的级联,而是为了避免不必要的重复 (DRY)。
-
@BoltClock,我会选择一种资源,它甚至可以解决任何一个浏览器(除了 IE/Edge)如何处理这个问题。这将提供有用的见解。优化当然是最好的选择,但这个问题更多的是,“这在我的一百万个优先级列表中应该有多高?”