HTML5
February 20, 2020

Необязательные теги 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>

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


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

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

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

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

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

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

HTML
<!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>, или, если больше нет содержания в родительском элементе.

HTML
<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       |                   |   Необязательный   |

Источник ↗