Jest to pozostałość po czasach Netscape:
Brakujące cyfry są traktowane jako 0 [...]. Niepoprawna cyfra jest po prostu interpretowana jako 0. Na przykład wszystkie wartości # F0F0F0, F0F0F0, F0F0F, #FxFxFx i FxFxFx są takie same.
Pochodzi z postu na blogu . Trochę o parsowaniu kolorów w programie Microsoft Internet Explorer, który obejmuje go bardzo szczegółowo, w tym różne długości wartości kolorów itp.
Jeśli zastosujemy reguły kolejno od postu na blogu, otrzymamy:
Zamień wszystkie niepoprawne znaki szesnastkowe na 0
chucknorris becomes c00c0000000
Wypełnij do następnej całkowitej liczby znaków podzielnych przez 3 (11 -> 12)
c00c 0000 0000
Podziel się na trzy równe grupy, przy czym każdy komponent reprezentuje odpowiadającą składową koloru koloru RGB:
RGB (c00c, 0000, 0000)
Obetnij każdy argument od prawej do dwóch znaków
Co daje następujący wynik:
RGB (c0, 00, 00) = #C00000 or RGB(192, 0, 0)
Oto przykład pokazujący bgcolor
atrybut w akcji, aby stworzyć tę „niesamowitą” próbkę koloru:
<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>
To także odpowiada na drugą część pytania; dlaczego bgcolor="chucknorr"
wytwarza żółty kolor? Cóż, jeśli zastosujemy reguły, ciąg będzie:
c00c00000 => c00 c00 000 => c0 c0 00 [RGB(192, 192, 0)]
Co daje kolor jasnożółtego złota. Ponieważ ciąg zaczyna się od 9 znaków, tym razem utrzymujemy drugie C, więc kończy się na końcowej wartości koloru.
Po raz pierwszy zetknąłem się z tym, gdy ktoś wskazał, że możesz to zrobić, color="crap"
i cóż, okazuje się, że jest brązowy.
bgcolor
. Użyj CSSbackground
.