Колір Чака Норріса в HTML


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Як HTML визначає, який колір задає рядок? Перевірити можна тут, на Fiddle. Дивно, що і chucknorri означає червоний колір, а ось chucknorr вже задає жовтий.

Чому це відбувається?

Це пережиток ще тих днів, коли найпопулярнішим браузером був Netscape. Усі пропущені й некоректні розряди в рядку, що задає колір, замінюються на 0. Так, #F0F0F0, F0F0F0, F0F0F, #FxFxFx і FxFxFx – це все той самий колір.

Ось тут можна знайти опис цієї схеми з усіма подробицями. Згідно з описом Чак зазнає таких перетворень:

Що відбувається взагалі?Що відбувається з Чаком? (chucknorris)
Усі некоректні 16-рядкові символи будуть замінені на нуліc00c0000000
Тепер зробимо довжину цього рядка кратною трьом, дописавши праворуч нуліc00c 0000 0000
Поділимо на три рівні групи, кожна з яких задаватиме один з кольорів RGBRGB (c00c, 0000, 0000)
Тепер кожне з чисел зменшимо до довжини в два розрядиRGB (c0, 00, 00) = #C00000 чи RGB (192, 0, 0)

Ось тут представлені інші кольори, задані нехитрими словами.

Тепер аналогічно подивимося, чому chucknorr є жовтим кольором. Ланцюжок набуде такого вигляду: chucknorr → c00c00000 → c00 c00 000 → RGB (c0, c0, 00) – це суміш темно-червоного і темно-зеленого, тобто золотий колір. Другий символ 3 не пропадає, оскільки первинна довжина рядка кратна трьом, то він переміщується в початок RGB-розряду.

Проте якщо довжина окремого значення кольору RGB перевищує 8, то перетворення відбувається інакше: спочатку довжина зменшується до восьми відкиданням символів ліворуч, а потім зменшується до двох відкиданням символів праворуч. Несподівано?

Усе відбувається, як в Internet Explorer. Передбачається, що і в інших браузерах відбувається те саме. Загалом, така ситуація є очікуваною, якщо розуміти, що HTML виконує все, що йому скажуть, щоправда сказане неправильно, виконує по-своєму.

Джерела: stackoverflow.com, habrahabr.ru.

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *