为什么rgb(0,0,0)在某些浏览器中显示为红色?

时间:2017-03-20 17:05:30

标签: html

为什么以下的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;
&#13;
&#13;

导致链接中图片的输出(注意红色!):

Link to screenshot

这似乎发生在Chrome和Firefox中,甚至在Outlook中(在HTML电子邮件中),但文本在IE 11中显示为黑色。

这不一定是我需要或可以修复的东西,但这种造型是由第三方组件给出的东西,它让我想知道为什么这会给它带来的结果。我无法在网上任何地方找到任何建议,说明为什么这会是红色(ish)而不是黑色。

我想了解它比什么都重要。

2 个答案:

答案 0 :(得分:8)

HTML color attributesuperseded 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在上面的评论中指出这一点。