Сбер вакансии Backend
Сбер вакансии Backend
Сбер вакансии Backend
Написать пост

Цвет Чака Норриса в HTML

Отредактировано

5К открытий5К показов
Цвет Чака Норриса в HTML

Как HTML определяет, какой цвет задает строка? Например, цвет этой страницы:

			Типичный программист
		

будет красным для всех платформ и браузеров. Проверить можно здесь, на Fiddle. Забавно, что и chucknorri обозначает красный цвет, а вот chucknorr уже задает желтый.

Почему это происходит?

Это пережиток еще тех дней, когда самым популярным браузером был Netscape. Все пропущенные и некорректные разряды в строке, задающей, цвет, заменяются на 0. Так, #F0F0F0, F0F0F0, F0F0F, #FxFxFx и FxFxFx — это все один и тот же цвет.

Вот здесь можно найти описание этой схемы со всеми подробностями. Согласно описанному в этой статье, Чак пройдет следующую череду преобразований:

Цвет Чака Норриса в HTML 1

 

Вот здесь представлены другие цвета, заданные нехитрыми словами.

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

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

Как указано в статье, все это происходит именно так в Internet Explorer. Но предполагается, что и в других браузерах происходит аналогично. В общем-то, такая ситуация вполне себе ожидаема, если понимать, что HTML выполняет все, что ему скажут, правда, если сказано неверно, то по-своему.

P.S. tproger соответствует черному цвету, а вот tproger.ru – темно-зеленому.

Источники: stackoverflow.com, habrahabr.ru.

Следите за новыми постами
Следите за новыми постами по любимым темам
5К открытий5К показов