为什么以下的html片段:
<html>
<head>
<title>Test</title>
</head>
<body>
Some Text<br />
<font color="rgb(0,0,0)">More Text</font><br />
<span style="color: rgb(255, 0, 0);">
<font color="rgb(0,0,0)">And the last of the text!</font>
</span>
</body>
</html>
&#13;
导致链接中图片的输出(注意红色!):
这似乎发生在Chrome和Firefox中,甚至在Outlook中(在HTML电子邮件中),但文本在IE 11中显示为黑色。
这不一定是我需要或可以修复的东西,但这种造型是由第三方组件给出的东西,它让我想知道为什么这会给它带来的结果。我无法在网上任何地方找到任何建议,说明为什么这会是红色(ish)而不是黑色。
我想了解它比什么都重要。
答案 0 :(得分:8)
HTML color
attribute(superseded over two decades ago)不接受CSS颜色值。它只接受HTML color values。
rgb(0,0,0)
是CSS颜色值。它不是HTML颜色值。
Error recovery将导致它被忽略(在这种情况下,父元素的颜色将被继承)或被视为不同的颜色。
答案 1 :(得分:1)
有些浏览器会将<font color="rgb(0,0,0)">
呈现为红色,因为它们会根据the deprecated spec解释"rgb(0,0,0)"
- 这不是有效的颜色值 - 作为十六进制颜色字符串#b00000
:
<font color="rgb(0,0,0)">This color</font>
equals
<font color="#b00000">this color</font>
有关说明,请参阅Why does HTML think “chucknorris” is a color?。感谢@ j08691在上面的评论中指出这一点。