为什么某些随机字符串在HTML中作为背景色输入时会产生颜色
例如:
<;车身bgcolor=“chucknorris”>;测试</车身>
…在所有浏览器和平台上生成一个红色背景的文档
另一方面,chucknorr
产生一个黄色背景
这是怎么回事
这是网景时代的遗留问题:
缺少的数字被视为0[…]。不正确的数字仅解释为0。例如,值#f0f0、f0f0、F0F0F、#fxfx和fxfx都是相同的
这是一篇关于Microsoft Internet Explorer颜色解析的小文章,内容非常详细,包括颜色值的不同长度等
如果我们依次应用博客文章中的规则,我们会得到以下结果:
-
将所有非有效十六进制字符替换为0:
chucknorris变为C00C00000000
-
填充到可被3(11)整除的下一个字符总数→ 12) :
c00c 0000
-
分成三个相等的组,每个组分代表RGB颜色的相应颜色组分:
RGB(c00c,0000,0000)
-
将每个参数从右向下截断为两个字符
最后得出以下结果:
RGB(c0,00,00)=#C00000或RGB(192,0,0)
下面的示例演示了bgcolor
属性的作用,以生成此“惊人”色样:
<;表>;
<;tr>;
<;td bgcolor=“chucknorris”cellpadding=“8”width=“100”align=“center”>;查克·诺里斯</td>;
<;td bgcolor=“mrt”cellpadding=“8”width=“100”align=“center”style=“color:#ffffff”>;T</td>;
<;td bgcolor=“ninjaturtle”cellpadding=“8”width=“100”align=“center”style=“color:#ffffff”>;忍者龟</td>;
</tr>;
<;tr>;
<;td bgcolor=“sick”cellpadding=“8”width=“100”align=“center”>;病态</td>;
<;td bgcolor=“crap”cellpadding=“8”width=“100”align=“center”>;废话</td>;
<;td bgcolor=“grass”cellpadding=“8”width=“100”align=“center”>;草</td>;
</tr>;
</表>
这也回答了问题的另一部分:为什么bgcolor=";“查克诺尔”产生黄色?如果我们应用规则,字符串是:
C00C000000=>;c00 c00 000=>;C0C000[RGB(192,192,0)]
它呈现出淡黄色和金黄色。由于字符串以9个字符开始,所以这次我们保留第二个“C”,因此它最终会成为最终的颜色值
当有人指出你可以做color=";废话然后,嗯,结果是棕色的