Зачем Dreamweaver добавлять код CSS в комментарии, если мы всегда используем этот комментарий, чтобы использовать CSS в <head>? - PullRequest
1 голос
/ 08 января 2010

Какая польза от добавления кода CSS в комментарии?

<STYLE type="text/css">
<!--
   H1 { color: red }
   P  { color: blue}
   -->
</STYLE>

Должны ли мы использовать это всегда или нет необходимости? Это так же, как CDATA для JavaScript?

Ответы [ 4 ]

4 голосов
/ 08 января 2010

Это архаичная путаница, предназначенная для поддержки браузеров HTML 2.0 более 15 с лишним лет назад. Эти браузеры не знали о тегах <script> и <style>, поэтому, если содержимое внутри них не было спрятано внутри разметки комментариев, оно выплевывало бы их на страницу в виде текстового содержимого, вызывая неприятный беспорядок.

Сегодня у этой практики нет абсолютно никакой цели, но она все еще держится благодаря кодированию и вставке и плохим инструментам авторинга, таким как Dreamweaver.

В XHTML, который используется в качестве XML, вы не должны включать разметку комментария, в противном случае ваш скрипт или таблица стилей действительно будут только комментарием и будут полностью проигнорированы.

Некоторые авторы используют раздел <![CDATA[ ... ]]> для скриптов и таблиц стилей в XHTML, но это по совершенно другой причине. Он позволяет вам включать буквальный символ < или & внутри содержимого без необходимости выполнять правильные действия с XML и экранировать его до &lt; или &amp;. Помимо усложнения чтения кода, HTML-переход в сценариях и стилях может сбить с толку устаревшие не-XML-анализаторы HTML: в HTML4 элементы script и style являются магическими и могут содержать эти символы без экранирования (единственная последовательность, которую вы можете ' t используется </, так как это завершает элемент).

Когда вы используете раздел CDATA в документе, который вы собираетесь читать не HTML-парсерами HTML, вы должны использовать комментарий CSS или JavaScript, чтобы скрыть разметку раздела CDATA:

<script type="text/javascript">//<![CDATA[
    ...
//]]></script>

<style type="text/css">/* <![CDATA[ */
    ...
/* ]]> */</style>

Для старой школы, распространяющей комментарии в HTML 3.2, было сделано исключение для разбора CSS и JS, чтобы позволить <!-- и --> последовательностям проскользнуть незамеченным, но это не так для <![CDATA[ или ]]>, который будет рассматриваться синтаксическим анализатором CSS или JavaScript как синтаксическая ошибка.

Если, боже упаси, вам нужно поддерживать HTML 2.0, 3.2+ и XHTML-парсеры, вам может понадобиться этот отвратительный беспорядок:

<script type="text/javascript"><!--//--><![CDATA[//><!--
    ...
//--><!]]></script>

<style type="text/css"><!--/*--><![CDATA[/*><!--*/
    ...
/*]]>*/--></style>

к счастью, этого никогда не случится.

Обычно вы можете обойтись без комментариев или CDATA, так как CSS почти никогда не нужно использовать символы < или &, а в JavaScript вы обычно можете превратить менее чем сравнения в безвредные > и логические и к инвертированным логическим или. И CSS, и JavaScript предлагают собственные экранированные символы, когда вы хотите поместить символ < или & в строковый литерал (например, '\x3C').

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

2 голосов
/ 08 января 2010

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

Эта практика не так важна сейчас, когда большинство клиентов могут правильно отображать стили, но все же это довольно часто встречается. Я обычно пренебрегаю этим в своем собственном коде, но это личное предпочтение.

1 голос
/ 08 января 2010

Вы всегда должны включать свой styles во внешние таблицы стилей, когда это возможно. Когда вам нужно включить их на страницу, чаще всего содержимое отображается в <!CDATA[[ ... ]]> блоках, чем в комментариях.

Комментарии не будут отключать правила в любых современных браузерах.

0 голосов
/ 08 января 2010

В Dreamweaver (DW) очень «удобно» изменить объявление doctype страницы.

Если используется XHTML , то включается <!-- .... --> или <!CDATA[[ ... ]]> для обеспечения строгого анализа и соответствия.

В любом случае, он обратно совместим (почти) с другими объявлениями типа документа, поэтому для DW имеет смысл всегда использовать это соглашение.

...