Page 49 - Сила CSS3 Освой новейший стандарт
P. 49
Грамотное использование CSS3 • 49
почему тег html?
Если вам так больше нравится, вместо тега html-классы можно прописать в теге body или
в обрамляющем блоке div — главное, чтобы это был элемент, окружающий все прочие
элементы на страницы.
Однако у элемента html есть определенное преимущество над остальными обрамляющими
тегами: он не блокирует параллельную загрузку таблиц стилей в IE 8 (об этом рассказы-
валось выше, во врезке «Недостатки условных комментариев»). Добавление условных
комментариев в тег body или обрамляющий блок div не устраняет эту ошибку в IE 8 — вам
все равно приходится добавлять пустой условный комментарий над основным файлом CSS.
Стоит упомянуть также, что в HTML4 и XHTML1 в теге html не допускалось использование
атрибутов class, поэтому данный метод сломал бы разметку страницы. Однако в HTML5
с этим проблем нет — а в этой книге мы, к счастью, работаем именно с версией HTML5.
Я понимаю, что вывалила на вас массу информации, которую трудно понять с ходу.
Но если разобраться, все оказывается не так сложно. Браузеры просто считывают
код строка за строкой, и разные версии IE выделяют для себя разные теги html.
Например, когда IE 6 загружает страницу, он видит условный комментарий, со-
держащий символы lt IE 7. Он говорит: «Точно, у меня же версия меньше 7! Зна-
чит, я применю код, содержащийся внутри этого условного комментария!» Таким
образом, IE 6 выделяет строку HTML-кода <html class="ie6" lang="en">. После
этого IE 6 переходит к следующему условному комментарию, понимает, что тот
к нему не относится, и попросту пропускает его. И так далее до конца страницы.
Это происходит со всеми версиями IE, поэтому каждая получает только один тег
html, а в каждом теге html содержится класс, идентифицирующий используемую
версию IE.
Остальные браузеры, отличные от IE, игнорируют все условные комментарии, по-
этому не обращают внимания на первые пять строк. В шестой строке содержится ус-
ловный комментарий с выявлением на нижнем уровне, поэтому IE его не учитывает,
а остальные браузеры используют. Таким образом, все прочие браузеры применяют
только последнюю строку, включающую простой, не содержащий классов тег html.
Добавив этот фрагмент кода HTML, вы можете приступать к созданию правил для
любых версий IE. Они добавляются прямо в основную таблицу стилей, что устраняет
необходимость в лишнем HTTP-запросе и упрощает отладку и поддержку — ведь
теперь все правила содержатся в одном общем файле. Вы не прибегаете к помощи
трюков и не беспокоитесь, что браузеры, отличные от IE, прочитают не предназначен-
ный для них код. Например, для того чтобы передать IE 6 значение height (с целью
компенсировать отсутствие поддержки min-height), можно добавить такой код:
div { min-height: 100px; }
.ie6 div { height: 100px; }
www.trk.kg