background-color: #BADA55;
和background: #BADA55;
之间的效率差异有多大?我意识到这很简单,但是浏览器如何提取每个值的差异。另外,在一个稍微相关的说明中,CSS3Please我注意到,对于线性渐变,他们使用background-image
指定了它们。有没有理由不简单地使用background
?
答案 0 :(得分:4)
规范没有提到浏览器应该如何实现属性的解析,特别是速记属性。所有它都是grammar,语法对它的实现没有任何说明。我怀疑,浏览器如何解析速记声明完全取决于实现,并且不容易回答(当然,除非你有源代码)。
事实上,我们有很多专门针对IE的CSS黑客攻击的主要原因是因为它对CSS的理解有多么不同(通常很差)。
有没有理由不简单地使用
background
?
答案在于你的上一句话:
另外,在一个稍微相关的说明中,CSS3Please我注意到,对于线性渐变,他们使用
background-image
指定了它们。
实际上; CSS渐变被认为是用于背景的图像,并记录在Image Values module中。他们申请的个人背景属性是background-image
。
如果使用速记属性仅指定颜色或仅指定渐变it will use the initial value for the rest of the values。如果使用的风格差异很重要,那么性能的差异就完全不可能了,因为它不再是公平的比较。
在此示例中,第二个background
速记声明将完全覆盖第一个,并为您留下纯色而没有渐变,因为background-image
的初始值为none
:< / p>
background: radial-gradient(white, rgba(255, 255, 255, 0)) /* transparent */;
background: /* none */ green;
简写表示法的目的是在单个声明中指定多个相关属性的值,因此为了应用渐变和颜色,应将其重写为:
background: radial-gradient(black, transparent) green;
答案 1 :(得分:1)