HTML-теги комментариев во внутренней таблице стилей

Возможный дубликат:
Комментирование таблиц стилей в документах HTML для поддержки старых браузеров

Я читаю Профессиональный ASP.NET 2.0, опубликованный Wrox. см. ниже код

    <head>
    <style type="text/css">

    <!--

    body {
    font-family:Verdana;
    }

    -->
    </style>
 </head>

следующие строки из книги:

HTML-теги комментариев включены, потому что не все браузеры поддерживают внутренние таблицы стилей. Обычно старые браузеры не принимают их. размещение комментариев HTML вокруг определений стиля скрывает эти определения от очень старых браузеров.

теперь мой вопрос заключается в том, как возможно, что содержимое между комментариями скрывается только для старых браузеров, а не для новых? на новые браузеры не влияют комментарии?

2 ответа

Решение

Старые (вернее, древние) браузеры не распознают <style> поэтому он обрабатывается как любой другой неизвестный элемент, а его содержимое обрабатывается как HTML. Комментарий обрабатывается как комментарий, поэтому ничего не отображается.

Браузеры, которые поддерживают <style> знать, чтобы обрабатывать контент как CSS и игнорировать комментарий HTML (согласно спецификации).

Идея заключается в том, что эта техника встроена в способ, которым новые браузеры поддерживают встроенные таблицы стилей. Это просто правило, что во внутренней таблице стилей разделители HTML-комментариев (<!-- а также -->) игнорируются, так что этот метод будет работать. (Если я не ошибаюсь, они игнорируются только в начале и в конце таблицы стилей, но я не совсем уверен в этом.)

В старых браузерах он не будет знать, что делать с тегом script, поэтому он поместит все в него прямо на странице. Однако в нем нет ничего, кроме комментария, поэтому пользователь ничего не увидит. Если вы хотите использовать комментарии в своем CSS, используйте стиль комментариев CSS (/* а также */).

Также обратите внимание, что этот метод существует для очень старых (или древних) браузеров. Эта техника больше не очень распространена в наши дни, и я осмелюсь сказать, что в ней больше нет необходимости (старые браузеры, вероятно, в любом случае не будут отображать вашу страницу правильно).

Другие вопросы по тегам