Ответ 1
Нет, не строго, но есть некоторые контекстуальные семантики, которые подразумеваются вложением header
под элементами, отличными от тела. В зависимости от того, как вы структурируете документ, вы можете столкнуться с неожиданным поведением. См. Ниже.
HTML5, насколько я могу судить, является типом документа с типом DTD. Это не относится к строгим правилам, поскольку оно относится к проверке структуры документа. Согласно документу W3C на HTML5
:
Элемент... header представляет собой вводный контент для его ближайшего раздела или фрагментации корневого элемента. Заголовок обычно содержит группу вводных или навигационных средств. [1]
В основном, это указывает на то, что если элемент header
находится непосредственно под body
документа, он применяется к странице в целом, но если она содержится в другом элементе, который идентифицирует раздел, header
применяется более конкретно к ближайшему предку.
Имейте в виду, что <div>
не является элементом секционирования, указанным Томашем Зелинским. Первоначально я думал, что это так. Если вы хотите, чтобы ваш заголовок применялся только к определенному разделу страницы, лучше всего использовать один из определенных элементов секционирования для включения заголовка, как определено здесь: http://www.w3.org/TR/html5/sections.html
например.
<div>
<section>
<header>...</header>
</section>
</div>