
Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.
Як HTML визначає, який колір задає рядок? Перевірити можна тут, на Fiddle. Дивно, що і chucknorri
означає червоний колір, а ось chucknorr
вже задає жовтий.
Чому це відбувається?
Це пережиток ще тих днів, коли найпопулярнішим браузером був Netscape. Усі пропущені й некоректні розряди в рядку, що задає колір, замінюються на 0. Так, #F0F0F0, F0F0F0, F0F0F, #FxFxFx
і FxFxFx
– це все той самий колір.
Ось тут можна знайти опис цієї схеми з усіма подробицями. Згідно з описом Чак зазнає таких перетворень:
Що відбувається взагалі? | Що відбувається з Чаком? (chucknorris) |
---|---|
Усі некоректні 16-рядкові символи будуть замінені на нулі | c00c0000000 |
Тепер зробимо довжину цього рядка кратною трьом, дописавши праворуч нулі | c00c 0000 0000 |
Поділимо на три рівні групи, кожна з яких задаватиме один з кольорів RGB | RGB (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?