gpt4 book ai didi

css - !important 对性能有害吗?

转载 作者:数据小太阳 更新时间:2023-10-29 09:05:26 25 4
gpt4 key购买 nike

我讨厌它们,它违背了 CSS 的级联特性,如果您不小心使用它们,您最终会陷入添加更多 !important 的循环。

但我想知道它们是否会影响性能?

编辑
从(快速)回复我可以得出结论,它不会对性能产生(重大)影响。但很高兴知道,即使它只是作为阻止他人的额外论据;)。

编辑 2
BoltClock 指出,如果有 2 个 !important 声明,规范说它将选择最具体的一个。

最佳答案

它不应该对性能有任何明显的影响。在 /source/layout/style/nsCSSDataBlock.cpp#572 查看 Firefox 的 CSS 解析器 并且我认为这是相关的例程,处理 CSS 规则的覆盖

这似乎只是对“重要”的简单检查。

  if (aIsImportant) {
if (!HasImportantBit(aPropID))
changed = PR_TRUE;
SetImportantBit(aPropID);
} else {
// ...
}

此外,在 source/layout/style/nsCSSDataBlock.h#219 发表评论

    /**
* Transfer the state for |aPropID| (which may be a shorthand)
* from |aFromBlock| to this block. The property being transferred
* is !important if |aIsImportant| is true, and should replace an
* existing !important property regardless of its own importance
* if |aOverrideImportant| is true.
*
* ...
*/

  1. Firefox uses a top down parser written manually. In both cases eachCSS file is parsed into a StyleSheet object, each object contains CSSrules.

  2. Firefox then creates style context trees which contain the end values(after applying all rules in the right order)

CSS Parser Firefox

From: http://taligarsiel.com/Projects/howbrowserswork1.htm#CSS_parsing

现在,您可以很容易地看到,在上述对象模型的情况下,解析器可以轻松标记受 !important 影响的规则,而无需太多后续成本。性能下降不是反对!important的好理由。

但是,可维护性确实会受到影响(如其他答案所述),这可能是您反对它们的唯一理由。

关于css - !important 对性能有害吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13743671/

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