HTML изначально был создан, чтобы поместить содержимое документов в какую-то структуру, понятную для компьютеров. Имея это в виду, тег p
должен содержать все, что было бы структурировано в виде абзаца, если бы содержимое страницы было превращено в печатный документ. Элементы div
и span
зарезервированы как контейнеры общего назначения, чтобы упростить форматирование и группирование связанных элементов, чтобы обеспечить дополнительные уровни структуры, возможно коррелируя со страницами в текстовом документе.
В некоторых случаях теги p
должны содержать другие элементы, такие как привязка (a
), изображение (img
) и другие встроенные элементы, поскольку они имеют непосредственное отношение к содержание остальной части абзаца, и имеет смысл сгруппировать их таким образом, или текст остальной части абзаца дает более глубокое описание.
Однако, если нет дополнительного описания этих элементов, не имеет смысла помещать их в абзац просто как удобный контейнер; div
было бы более уместным. В целом, абзац должен содержать один абзац текста и любые непосредственно связанные или описанные элементы. Ничто другое не имеет особого смысла в абзаце.
ОБНОВЛЕНИЕ : HTML5 также добавляет ряд других семантических «контейнерных» элементов, включая article
, nav
, header
, section
и aside
.