1.14. Необязательные теги HTML5 разметки

html-optional-tagsВ спецификации HTML5 некоторые правила разметки были ослаблены. В частности, использование элементов <html>, <head> и <body> уже не является обязательным для разметки HTML5. Тем не менее браузер все равно считает, что они существуют, в чем можно убедиться, просмотрев разметку веб-страницы в Mоzilla Firebug или в Google Chrome Inspector.

Эти элементы всегда «подразумеваются», но если они будут использоваться в таблице CSS-стилей или в JavaScript-сценариях, то их надо прописывать в явном виде.

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

1. Элемент <html>

Начальный тег <html> может быть опущен, если сразу за тегом не идет комментарий:

Закрывающий тег </html> также может быть опущен, если перед ним нет комментария.

2. Элемент <head>

Начальный тег <head> может быть опущен, если элемент <head> пуст, или если сразу после него идет другой html-элемент.
Закрывающий тег </head> может быть опущен, если он не следует сразу за пробелом или за комментарием.

3. Элемент <body>

Начальный тег <body> может быть опущен, если элемент пуст, или если первое, что внутри элемента не является пробелом или комментарием, за исключением случаев, когда первое, что идет за тегом <body> являются элементы <meta>, <link>, <script> или <style>.

Закрывающий тег </body> может быть опущен, если перед ним нет комментария.

4. Элемент <li>

Закрывающий тег </li> может быть опущен, если элемент <li> сразу следует за другим элементом <li>, или если больше нет содержания в элементе, в который вложен тег.

5. Элементы <dt> и <dd>

Закрывающий тег </dt> может быть опущен, если элемент <dt> следует сразу за еще одним элементом <dt> или <dd>.

Закрывающий тег </dd> может быть опущен, если элемент <dd> следует сразу за еще одним элементом <dd> или <dt>, или если больше нет содержания в элементе, в который вложен тег.

6. Элемент <p>

Закрывающий тег </p> может быть опущен, если элемент p следует сразу за любым из перечисленных элементов:
address, article, aside, blockquote, dir, div, dl, fieldset, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, hr, menu, nav, ol, p, pre, section, table, ul, или если больше нет содержания в элементе, в который вложен тег <p>, или родительским элементом не является тег <a>.

7. Элементы <rt> и <rp>

Закрывающий тег </rt> может быть опущен, если элемент <rt> следует сразу за еще одним элементом <rt> или <rp>, или если больше нет содержания в элементе, в который вложен тег.

Закрывающий тег </rp> может быть опущен, если элемент <rp> следует сразу за еще одним <rp> или <rt> элементом, или если больше нет содержания в элементе, в который вложен тег.

8. Элементы <optgroup> и <option>

Закрывающий тег </optgroup> может быть опущен, если элемент <optgroup> следует сразу за еще одним элементом <optgroup>, или если нет больше содержания в родительском элементе.

Закрывающий тег </option> может быть опущен, если элемент <option> следует сразу за еще одним элементом <option>, или если он идет сразу после <optgroup>, или если нет больше содержания в родительском элементе.

9. Элемент <colgroup>

Начальный тег элемента <colgroup> может быть опущен, за элементом <colgroup> сразу идет элемент <col>, и если перед элементом непосредственно не предшествует другой элемент <colgroup>, закрывающий тег которого был опущен. (Он не может быть опущен, если элемент пустой.)

10. Элементы <thead>, <tbody> и <tfoot>

Закрывающий тег </thead> может быть опущен, если элемент <thead> следует сразу за <tbody> или <tfoot>.

Открывающий тег <tbody> может быть опущен, если за ним сразу идет элемент <tr>, и если перед элементом непосредственно не предшествует другой <tbody>, <thead>, или <tfoot>, закрывающий тег которого был опущен. (Он не может быть опущен, если элемент является пустым.)

Закрывающий тег </tbody> может быть опущен, если после элемента <tbody> сразу следует <tbody> или <tfoot>, или если больше нет содержания в родительском элементе.

Закрывающий тег </tfoot> может быть опущен, если элемент <tfoot> следует сразу же за <tbody>, или если больше нет содержания в родительском элементе.

Закрывающий тег </tr> может быть опущен, если элемент <tr> следует сразу же за еще одним элементом <tr>, или если больше нет содержания в родительском элементе.

Закрывающий тег </td> может быть опущен, если элемент <td> следует сразу же за еще одним элементом <td> или <th>, или, если нет больше содержания в родительском элементе.

Закрывающий тег </th> может быть опущен, если элемент <th> следует сразу же за <td> или <th>, или, если больше нет содержания в родительском элементе.

Таблица 1. Необязательные и запрещенные теги в спецификации HTML5
Тег

Открывающий тег

Закрывающий тег

Пустой тег
area

Запрещен

Разрешен
base

Запрещен

Разрешен
body

Необязательный

Необязательный

br

Запрещен

Разрешен
col

Запрещен

Разрешен
colgroup

Необязательный

dd

Необязательный

dt

Необязательный

head

Необязательный

Необязательный

hr

Запрещен

Разрешен
html

Необязательный

Необязательный

img

Запрещен

Разрешен
input

Запрещен

Разрешен
li

Необязательный

link

Запрещен

Разрешен
meta

Запрещен

Разрешен
option

Необязательный

p

Необязательный

param

Запрещен

Разрешен
tbody

Необязательный

Необязательный

td

Необязательный

tfoot

Необязательный

th

Необязательный

thead

Необязательный

tr

Необязательный

  • Колотушкин

    Лучше писать, чем их пропускать.

  • Skvor

    ТБЛ придумал очередной гемор. Необязательность закрывающих элементов для контейнеров — это палка о двух концах, которой до этого потыкали в дерьмо и обоими концами. Теперь алгоритм работы браузеров и постоение DOM д.б. ещё сложнее, и не факт, что не возникнут ошибки с форматированием в некоторых движках. Я б не стал отказываться от закрытия — сэкономить не получиться, а развалить макет в дерьмо — риск есть.

    Мне кажется, более правильно (понятнее будет) написать список тегов-контейнеров, которые закрывают предыдущие контейнеры.

    • Я с вами согласна, лучше не забивать голову такими нововведениями, особенно новичкам, люди и без этого путаются — я недавно видела на одном сайте в разметке . Тем не менее, эта информация имеет право на существование.