HTML为什么认为“ chucknorris”是一种颜色?

时间:2021-04-08 16:36:00 来源:互联网 热度: 作者: 佚名 字体:

在HTML中作为背景色输入时,某些随机字符串如何产生颜色?例如:

 

<body bgcolor="chucknorris"> test </body>

 

...在所有浏览器和平台上产生背景红色的文档

有趣的是,虽然chucknorri也会产生红色背景,但也会chucknorr产生黄色背景。

这里发生了什么?

解决方案:

大多数浏览器将只忽略颜色字符串中的任何非十六进制值,而将非十六进制数字替换为零。

ChuCknorris转换为c00c0000000此时,浏览器会将字符串分为三个相等的部分,分别指示RedGreenBlue值:c00c 0000 0000每个部分中的多余位都将被忽略,从而使最终结果#c00000为带红色的颜色。

请注意,这并不能适用于CSS颜色解析,它遵循CSS标准。

<p><font color='chucknorris'>Redish</font></p> <p><font color='#c00000'>Same as above</font></p> <p><span style="color: chucknorris">Black</span></p>

本文首发于前端黑洞网,博客园同步跟新