【发布时间】:2019-09-09 16:08:03
【问题描述】:
根据MDN - Cascade and inheritanceinitial的值
将应用于选定元素的属性值设置为与浏览器默认样式表中该元素的该属性设置的值相同
所有主流浏览器中锚元素的默认颜色都是蓝色。例如,Chrome 的默认样式表为锚元素定义了以下样式:
a:-webkit-any-link {
color: -webkit-link;
text-decoration: underline;
cursor: pointer;
}
-webkit-link 解析为蓝色。
鉴于此,我希望在使用 color: initial 时锚元素的文本为蓝色。但取而代之的是黑色。为什么?
经过一番调查,我发现 MDN 与 here 写的自相矛盾
初始值不应与浏览器样式表指定的值混淆。
我很困惑。哪种说法是正确的?
如果后者为真,我在哪里可以找到不同浏览器的元素初始值?为什么初始值应该不同于浏览器样式表中指定的值?
【问题讨论】:
-
这里是官方规范,您不会感到困惑:w3.org/TR/css-cascade-3/#initial-value
-
@TemaniAfif 感谢您的回复。我已经阅读了该规范,并且我喜欢该描述非常简洁明了。
-
color尤其令人困惑,因为初始颜色“取决于用户代理”。但这与在用户代理样式表中定义的不同。这意味着用户代理应该使用适合输出设备的初始颜色。对于现代 LCD 显示器,它可能是黑色的,但用户可能会将其配置为不同的颜色。它不依赖于元素类型,或者它的属性或状态。用户代理上的所有文本都将具有相同的初始颜色。