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

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

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

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

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

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

<!DOCTYPE HTML>
  <head>
    <title>Hello</title>
  </head>
  <body>
    <p>Welcome to this example.</p>
  </body>

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

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

<!DOCTYPE HTML>
  <title>Hello</title>
   <body>
    <p>Welcome to this example.</p>
   </body>

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

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

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

<!DOCTYPE HTML>
  <title>Hello</title>
   <p>Welcome to this example.</p>

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>, <td>, <tr>

Закрывающий тег </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>, или, если больше нет содержания в родительском элементе.

<table>
  <caption>37547 TEE Electric Powered Rail Car Train Functions (Abbreviated)
    <colgroup><col><col><col>
  <thead>
   <tr><th>Function<th>Control Unit<th>Central Station
 <tbody>
  <tr><td>Headlight<td>✔<td>✔
  <tr><td>Interior Lights<td>✔<td>✔
  <tr><td>Electric locomotive operating sounds<td>✔<td>✔
  <tr><td>Engineer's cab lighting<td><td>✔
  <tr><td>Station Announcements - Swiss<td><td>✔
</table>
Таблица 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

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

Поделиться: