Недавно я обнаружил, что, возможно, есть новый способ комментирования в HTML5.
Вместо типичного <!-- -->
многострочного комментария, о котором я читал, мне показалось , что я заметил, что моя IDE регулярно <!div >
закомментировала. Я протестировал его, и, к моему удивлению, Chrome закомментировал этот тег. Он только закомментировал тег , а не содержимое DIV, так что мне пришлось закомментировать ближе , <!/div>
чтобы избежать закрытия других дивы.
Я протестировал другой, и выяснилось, что обычно установка восклицательного знака перед открытием любого тега, этот символ <
, делает этот тег закомментированным.
Это действительно ново? Это плохая практика? На самом деле это очень удобно, но практично ли (если не ново)?
Отредактируйте дополнительные сведения: хотя синтаксическая ошибка или неправильное толкование этого синтаксиса является веской причиной, почему Chrome фактически отображает их как полные комментарии?
Код записывается как :
<!div displayed> some text here that is still displayed <!/div>
И тогда это отображается как :
<!--div displayed--> some text here that is still displayed <!--/div-->
Ответы:
В HTML5 нет нового стандарта для комментариев. Единственный допустимый синтаксис комментария по-прежнему
<!-- -->
. Из раздела 8.1.6 W3C HTML5 :В
<!
синтаксических берет начало в SGML DTD разметки, которая не является частью HTML5. В HTML5 он зарезервирован для комментариев, разделов CDATA и объявления DOCTYPE. Поэтому, является ли эта альтернатива плохой практикой, зависит от того, считаете ли вы использование (или, что еще хуже, зависимость от) устаревшей разметки плохой практикой.Validator.nu называет то, что у вас есть «Поддельный комментарий». - это означает, что он рассматривается как комментарий, даже если это недействительный комментарий. Предположительно это сделано для обратной совместимости с pre-HTML5, который был основан на SGML и имел декларации разметки, принимавшие форму
<!FOO>
, поэтому я бы не стал называть это новым. Причина они рассматриваются как комментарии, потому что декларации SGML разметки , были специальные заявления не должны быть вынесено, но так как они не имеют смысла в HTML5 (с указанными выше исключениями), насколько HTML5 DOM обеспокоен они не являются не более , чем комментарии ,Следующие шаги в разделе 8.2.4 приводят к такому выводу, которому Chrome, похоже, следует в точности:
8.2.4.1 Состояние данных :
8.2.4.8 Открытое состояние тега :
8.2.4.45 Открытое состояние объявления разметки :
Обратите внимание, что в нем говорится о переключении в состояние начала комментария только в том случае, если последовательность встречающихся символов равна
<!--
, иначе это фиктивный комментарий. Это отражает то, что указано в разделе 8.1.6 выше.8.2.4.44 Состояние фиктивного комментария :
Говоря простым языком, это превращается
<!div displayed>
в<!--div displayed-->
и<!/div>
в<!--/div-->
точно так, как описано в вопросе.В заключение, вы, вероятно, можете ожидать, что другие парсеры, совместимые с HTML5, будут вести себя так же, как Chrome.
источник
Я не думаю, что это хорошая привычка, поскольку это
<!
означает объявления разметки вроде<!DOCTYPE
. Таким образом, вы думаете, что это прокомментировано (ну ... браузер попытается его интерпретировать).Даже если он не появляется, похоже, это неправильный синтаксис для комментирования HTML-кода.
источник