16. Группировка контента.

О визуальном оформлении:

Для группировки контента HTML предлагает контейнерные элементы div, p, pre, blockquote, hr, ol, ul, dl, figure.

Все перечисленные элементы являются блочными:

div

Элемент div позволяет создать универсальный контейнер-блок. Основная идея использования – выделение фрагмента и дальнейшая настройка его при помощи CSS. В этом смысле div является блочным аналогом span.

p

Элемент p определяет текстовый абзац. Абзацы, идущие друг за другом, разделяются между собой отбивкой. По стандарту закрывающий тег обязателен. Если его нет, считается, что конец абзаца совпадает с началом следующего абзаца или другого блочного элемента. Внутри абзаца не должны встречаться элементы p. Несколько пустых абзацев подряд отображаются как один пустой абзац (и не занимаю места на странице).

Выравниванием текста внутри абзаца управляет атрибут align (justify – растягивает текст по ширине, вставляя дополнительные пробелы):

align="left|center|right|justify"

Атрибут align объявлен в HTML5 устаревшим!

pre

Контейнерный элемент pre определяет блок предварительно форматированного текста. Такой текст отображается (по умолчанию) моноширинным шрифтом и со всеми пробелами.

blockquote

Контейнерный элемент blockquote выделяет цитату внутри документа как блок (отступы слева и справа, отбивка сверху и снизу). При необходимости атрибут cite позволяет указать источник цитаты.

<blockquote cite="http://en.wikipedia.org/wiki/Apple">
Apple
</blockquote>

hr

Автономный элемент hr рисует горизонтальную линию. В HTML5 ему придали семантическое значение: переход к новой теме в рамках параграфа.

Элемент hr имеет набор собственных атрибутов (все они устарели в HTML5):

Cписки

Список – взаимосвязанный набор отдельных фраз, которые начинаются с маркера или цифры. В HTML списки представлены блочными элементами ul (маркированный список) и ol (нумерованный список). Каждый элемент списка заключается в контейнер li.

У элемента ul есть атрибут type, который управляет видом маркера (disc|circle|square).

Для ol допустимы атрибуты type (A|a|I|i|1), start (число, с которого будет начинаться список), reversed (логический, нумерация по убыванию (3,2,1)).

Внимание: атрибут type устарел в HTML5 (и для ul, и для ol). А атрибут reversed не поддерживается в IE.

У элемента li можно указать атрибут type (возможные значения зависят от обрамляющего списка), а при помощи атрибута value задать конкретное значение (для нумерованных списков). Атрибут type устарел в HTML5.

Список определений - особая разновидность списка, каждое вхождение состоит из термина и определения.

Зачем: глоссарий, диалоги, пары «ключ-значение».

Сам список – контейнер dl, термин – элемент dt, определение термина – элемент dd (dt и dd находятся на одном уровне вложенности).

<dl>
<dt>HTML-документ</dt>
<dd>
Обычный текстовый файл, который может содержать...
</dd>
</dl>

Фигуры

В HTML5 появился новый элемент для группировки – figure. Семантическое назначение – создать логически неделимую единицу контента из группы элементов и подписи.

Для задания подписи следует использовать элемент figcaption. Он должен быть первым или последним элементом в контейнере figure.

<figure>
<figcaption>Listing 23. Using the code element</figcaption>
<code>
var fruits = ["apples", "oranges", "mangoes", "cherries"];<br>
document.writeln("I like " + fruits.length + " fruits");
</code>
</figure>
<figure>

main

Элемент main (HTML5) описывает группу основного контента (это не секции, хотя похоже).

W3C HTML 5.1 – в документе не более одного main; HTML Living Standard – количество main не ограничено.

IE не поддерживает main (а Edge – поддерживает).