É uma ressaca dos dias do Netscape:
Os dígitos ausentes são tratados como 0 [...]. Um dígito incorreto é simplesmente interpretado como 0. Por exemplo, os valores # F0F0F0, F0F0F0, F0F0F, #FxFxFx e FxFxFx são iguais.
É da postagem do blog Um pouco sobre a análise de cores do Microsoft Internet Explorer, que o aborda com muitos detalhes, incluindo comprimentos variados de valores de cores, etc.
Se aplicarmos as regras à vez na postagem do blog, obteremos o seguinte:
Substitua todos os caracteres hexadecimais não válidos pelos zeros
chucknorris becomes c00c0000000
Coloque o próximo número total de caracteres divisíveis por 3 (11 -> 12)
c00c 0000 0000
Divida em três grupos iguais, com cada componente representando o componente de cor correspondente de uma cor RGB:
RGB (c00c, 0000, 0000)
Truncar cada um dos argumentos da direita para baixo para dois caracteres
O que fornece o seguinte resultado:
RGB (c0, 00, 00) = #C00000 or RGB(192, 0, 0)
Aqui está um exemplo demonstrando o bgcolor
atributo em ação, para produzir essa amostra de cores "incrível":
<table>
<tr>
<td bgcolor="chucknorris" cellpadding="8" width="100" align="center">chuck norris</td>
<td bgcolor="mrt" cellpadding="8" width="100" align="center" style="color:#ffffff">Mr T</td>
<td bgcolor="ninjaturtle" cellpadding="8" width="100" align="center" style="color:#ffffff">ninjaturtle</td>
</tr>
<tr>
<td bgcolor="sick" cellpadding="8" width="100" align="center">sick</td>
<td bgcolor="crap" cellpadding="8" width="100" align="center">crap</td>
<td bgcolor="grass" cellpadding="8" width="100" align="center">grass</td>
</tr>
</table>
Isso também responde à outra parte da pergunta; por que bgcolor="chucknorr"
produz uma cor amarela? Bem, se aplicarmos as regras, a string será:
c00c00000 => c00 c00 000 => c0 c0 00 [RGB(192, 192, 0)]
O que dá uma cor ouro amarelo claro. À medida que a string começa com 9 caracteres, mantemos o segundo C dessa vez; portanto, ele termina no valor final da cor.
Eu encontrei isso originalmente quando alguém apontou que você poderia fazer color="crap"
e, bem, sai marrom.
bgcolor
. Use CSSbackground
.