回答

收藏

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

技术问答 技术问答 237 人阅读 | 0 人回复 | 2023-09-11

为什么有些随机字符串被用作 HTML 输入背景颜色时会产生颜色?# o$ U6 j" v' D( ~8 R2 h
例如:
, m$ X4 N: L3 g! `4 [
    test # l0 b/ u% T0 O
…在所有浏览器和平台上生成红色背景的文档。
# C6 A, B8 v3 J7 ^( C另一方面,chucknorr产生黄色背景
+ |* {5 K) B9 Y, B4 Y( `* R. O这儿发生了什么?- p' r8 g7 W3 I& x- m2 `( E
                                                                ) m3 x1 b% W6 l5 m% ?, s4 Q+ q
    解决方案:                                                                % Q$ r4 t4 K% r$ v8 G% w" I
                                                                缺失的数字被视为 0[…]。将错误的数字简单地解释为 0。#F0F0F0、F0F0F0、F0F0F、#FxFxFx 和 FxFxFx 值是一样的。
0 P) X* F4 k  W7 u6 B6 V* y: W& I如果我们依次应用博客文章中的规则,我们将得到以下结果:
6 \( u  @8 V0 _3 l" a[ol]取代所有无效的16进制字符:[/ol]html   chucknorris becomes c00c00000000 j) o) I1 ]7 U
[ol]下一个可以被 3 整除的字符总数 (11 → 12):[/ol]html   c00c 0000 00006 q  h3 I3 N) c( }* Y
[ol]分为三个相等组,每个重量代表 RGB 相应颜色分量:[/ol]html   RGB (c00c,0000,0000)- |% O, h* A" G8 l% l3 V8 U
[ol]将每个参数从右侧切断为两个字符。[/ol]最后,得出以下结果:
  R2 |" f& u3 l
    RGB (c0,00,00) = #C00000 or RGB(192,0,0); h4 i% U1 {6 j
这是一个示例,是时候演示了bgcolor为了生成这个惊人的色样:! T0 e# t3 V) w( L+ Q6 C$ c9 y
    chuck norrisMr Tninjaturtle
    sickcrapgrass

    2 f5 k, O6 H/ r) U% S8 y
这也回答了问题的另一部分:为什么bgcolor="chucknorr"产生黄色?如果我们应用规则,字符串是:
' k( s3 X; Y: N" a, ~[code]c00c00000 => c00 c00 000 => c0 c0 00 [RGB(192,192,0)code]这给了一种浅黄色的金色。因为字符串从 9 开始,这次我们保留了第二个 ‘C’,所以它以最终的颜色值结束。
: r0 [- ?! m  c, }) p* b7 [当有人指出你可以这样做时,我第一次遇到了这个color="crap",它是棕色的。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则