Це перехід від днів Netscape:
Пропущені цифри трактуються як 0 [...]. Неправильна цифра просто інтерпретується як 0. Наприклад, значення # F0F0F0, F0F0F0, F0F0F, #FxFxFx і FxFxFx однакові.
Це з публікації в блозі Невелика розмова про розбір кольорів Internet Internet Explorer, яка висвітлює його дуже детально, включаючи різну довжину значень кольорів тощо.
Якщо ми застосовуємо правила по черзі з публікації блогу, ми отримуємо наступне:
Замініть всі недійсні шістнадцяткові символи на 0
chucknorris becomes c00c0000000
Вимкніть наступну загальну кількість символів, поділену на 3 (11 -> 12)
c00c 0000 0000
Розбийте на три рівні групи, причому кожен компонент представляє відповідну кольорову складову кольору RGB:
RGB (c00c, 0000, 0000)
Обрізайте кожен з аргументів справа на два символи
Що дає такий результат:
RGB (c0, 00, 00) = #C00000 or RGB(192, 0, 0)
Ось приклад, що демонструє bgcolor
атрибут у дії, щоб створити цей "дивовижний" кольоровий зразок:
<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>
Це також відповідає іншій частині питання; чому bgcolor="chucknorr"
утворюється жовтий колір? Що ж, якщо ми застосуємо правила, рядок:
c00c00000 => c00 c00 000 => c0 c0 00 [RGB(192, 192, 0)]
Що дає світло-жовтий золотий колір. Оскільки рядок починається з 9 символів, ми зберігаємо другий C на цей раз навколо, отже, він закінчується в кінцевому значенні кольору.
Я спочатку стикався з цим, коли хтось вказував, що ти можеш зробити, color="crap"
і, ну, виходить коричневий.
bgcolor
. Використовуйте CSSbackground
.