Комментарии в HTML

Отправлено 25 янв. 2012 г., 1:49 пользователем Anton Derbenev   [ обновлено 25 янв. 2012 г., 3:02 ]

Только что в мануале wget'а (см. --strict-comments внизу) вычитал страшное про комментарии HTML.

Оказывается, комментарии в HTML рассматриваются как декларации SGML. Декларации определяются специальной разметкой, которая начинается с <! и заканчивается на >, навроде <!DOCTYPE …> (без пробелов после <!). И в ней могут быть комментарий между парой двойных дефисов --комментарий--.

Собственно HTML – это пустые декларации SGML, в которых кроме комментария больше ничего нет. Так что <!--блаблабла--> – годный комментарий, как и <!--раз-- --два-- >. Но <!--раз--два--> – нет! А <!------------> – годный комментарий, если количество дефисов делится на 4! Если нет, то комментарий SGML продолжается до следующего --. А потом (следующей) треугольной скобкой > должна быть закончена декларация, что может и не случиться и до конца документа. Именно по этой причине w3c пишет, что нельзя ставить 2 или больше дефиса подряд в комментарии.

Но силами Microsoft большая часть HTML'щиков уверены, что комментарий в HTML – это что угодно между <!-- и -->. Из-за этого все популярные браузеры игнорируют спецификацию и интерпретируют комментарии так, как этого ожидает быдло :(

Comments