- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我讨厌它们,它违背了 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.
*
* ...
*/
Firefox uses a top down parser written manually. In both cases eachCSS file is parsed into a StyleSheet object, each object contains CSSrules.
Firefox then creates style context trees which contain the end values(after applying all rules in the right order)
From: http://taligarsiel.com/Projects/howbrowserswork1.htm#CSS_parsing
现在,您可以很容易地看到,在上述对象模型的情况下,解析器可以轻松标记受 !important
影响的规则,而无需太多后续成本。性能下降不是反对!important
的好理由。
但是,可维护性确实会受到影响(如其他答案所述),这可能是您反对它们的唯一理由。
关于css - !important 对性能有害吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13743671/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我在摆弄 LinqToSQL 和 LINQPad,我注意到 SingleOrDefault() 没有对生成的 SQL 进行任何过滤或限制(我几乎期望与 Take(1) 等效)。 因此,假设您想保护自己
我是一名优秀的程序员,十分优秀!