Обратите внимание, что

  1. данный документ является переводом документа «8 The HTML syntax — HTML5» и на данный момент находится на стадии перевода;
  2. данный документ может содержать неточности, опечатки и ошибки перевода;
  3. официальным документом по данной тематике является оригинальный документ на английском языке, расположенный на сайте W3C.

8 Синтаксис HTML


* * *

8.1 Написание HTML-документов


* * *

8.1.1 DOCTYPE

DOCTYPE является обязательным вступлением к документу.

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

DOCTYPE должен состоять из следующих компонентов, которые должны располагаться в следующем порядке:

  1. Строка, ASCII, без учёта регистра, соответствующая строке "<!DOCTYPE".
  2. Один или более пробельных символов.
  3. Строка, ASCII, без учёта регистра, соответствующая строке "html".
  4. При необходимости строка наследования DOCTYPE или строка устаревших разрешённых DOCTYPE (как определено ниже).
  5. Ноль или более пробельных символов.
  6. Символ ">" (U+003E).

Другими словами, <!DOCTYPE html>, без учёта регистра.


Разработчики, использующие HTML и не выводящие HTML разметку в виде короткой DOCTYPE "<!DOCTYPE html>", могут вставлять в DOCTYPE строку наследования DOCTYPE (определено выше в положении). Такая строка должна содержать:

  1. Один или более пробельных символов.
  2. Строка, ASCII, без учёта регистра, соответствующая строке "SYSTEM".
  3. Один или более пробельных символов.
  4. U+0022 КАВЫЧКА или U+0027 АПОСТРОФ (одинарная кавычка).
  5. Строка состоящая из последовательности символов "about:legacy-compat".
  6. Соответствующий символ U+0022 КАВЫЧКИ или U+0027 АПОСТРОФА (т.е. тот же самый символ, что и в предыдущем шаге обозначенный как одинарная кавычка).

Другими словами, <!DOCTYPE html SYSTEM "about:legacy-compat"> или <!DOCTYPE html SYSTEM 'about:legacy-compat'>, без учёта регистра символов за исключением участков заключённых в одинарные или в двойные кавычки.

Строка наследования DOCTYPE не должна использоваться, если документ создаётся системой, которая не может вывести более короткой строки.


Чтобы помочь авторам перейти от HTML4 и XHTML1, в DOCTYPE может быть вставлена строка устаревших разрешённых DOCTYPE (в положении определённом выше). Такая строка должна содержать:

  1. Один или более пробельных символов.
  2. Строка, ASCII, без учёта регистра, соответствующая строке "PUBLIC".
  3. Один или более пробельных символов.
  4. U+0022 КАВЫЧКА или U+0027 АПОСТРОФ (первая одинарная кавычка).
  5. Одна из строк ячеек в первом столбце приведённой ниже таблицы. Строка которой эта ячейка принадлежит является выбранной строкой.
  6. Соответствующий символ U+0022 КАВЫЧКИ или U+0027 АПОСТРОФА (т.е. тот же самый символ, что и в предыдущем шаге с первой одинарной кавычкой).
  7. Если используется идентификатор системы,
    1. Один или более пробельных символов.
    2. U+0022 КАВЫЧКА или U+0027 АПОСТРОФ (третья одинарная кавычка).
    3. Строка из ячейки второго столбца выбранной строкой.
    4. Соответствующий символ U+0022 КАВЫЧКИ или U+0027 АПОСТРОФА (т.е. тот же самый символ, что и в предыдущем шаге с третьей одинарной кавычкой).
Допустимые значения для публичных и системных идентификаторов в строке устаревших разрешённых DOCTYPE.
Публичный идентификатор Системный идентификатор Дополнительный системный идентификатор?
-//W3C//DTD HTML 4.0//EN http://www.w3.org/TR/REC-html40/strict.dtd Да
-//W3C//DTD HTML 4.01//EN http://www.w3.org/TR/html4/strict.dtd Да
-//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd Нет
-//W3C//DTD XHTML 1.1//EN http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd Нет

DOCTYPE, содержащий строку устаревших разрешённых DOCTYPE является устаревшим разрешением DOCTYPE. Авторы не должны использовать устаревшие разрешённые DOCTYPE объявления, так как они излишне длинны.


* * *

8.1.6 Комментарии

Комментарии должны начинаться с последовательности четырёх символов U+003C ЗНАК МЕНЬШЕ, U+0021 ВОСКЛИЦАТЕЛЬНЫЙ ЗНАК, U+002D ДЕФИС-МИНУС, U+002D ДЕФИС-МИНУС (<!--). После этой последовательности, может идти текст комментария, при этом он не должен начинаться с символа ">" (U+003E), символа U+002D ДЕФИС-МИНУС (-) за которым следует символ ">" (U+003E), или содержать два последовательных символа U+002D ДЕФИС-МИНУС (--), а так же заканчиваться символом U+002D ДЕФИС-МИНУС (-). Наконец, комментарий должен быть закрыт последовательностью трёх символов U+002D ДЕФИС-МИНУС, U+002D ДЕФИС-МИНУС, U+003E ЗНАК БОЛЬШЕ (-->).


* * *