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
   44   45   46   47   48   49   50   51   52   53   54