Я только что снова прочитал спецификацию HTML5, чтобы узнать, могу ли я nav
элемент nav
внутри header
. Параграф элемента header
немного странный, если вы спросите меня, но, вероятно, только потому, что я его не понимаю.
В этом примере страница имеет заголовок страницы, заданный элементом h1, и два подраздела, заголовки которых указаны элементами h2. Содержимое после элемента заголовка все еще является частью последнего подраздела, начатого в элементе заголовка, потому что элемент заголовка не участвует в алгоритме контура.
<body>
<header>
<h1>Little Green Guys With Guns</h1>
<nav>
<ul>
<li><a href="/games">Games</a>
<li><a href="/forum">Forum</a>
<li><a href="/download">Download</a>
</ul>
</nav>
<h2>Important News</h2> <!-- this starts a second subsection -->
<!-- this is part of the subsection entitled "Important News" -->
<p>To play today games you will need to update your client.</p>
<h2>Games</h2> <!-- this starts a third subsection -->
</header>
<p>You have three active games:</p>
<!-- this is still part of the subsection entitled "Games" -->
...
Источник: http://www.w3.org/TR/html5/sections.html#the-header -element
Итак, согласно комментарию, <p>You have three active games:</p>
все еще является частью подраздела, который начинается внутри заголовка, потому что заголовок сам по себе не представляет нового раздела.
Но разве это не разрыв с структурой вложенности, на которой построен HTML? Например, это недопустимая разметка, поскольку вложенность неверна:
<div>
<p>
</div>
</p>
Но если бы я определил - теоретически - что div ничего не делает, тогда все будет хорошо?
Пожалуйста, не поймите меня неправильно, это не разглагольствование или что-то еще, я просто попытаюсь понять, в чем смысл этого? Кроме того, почему элемент заголовка указан в разделах, если он не является элементом секционирования?
Кстати, HTML5 выделяет все еще как сломанный, как это было около года назад? Или есть инструмент или что-то, что теперь исправляет его?
Итак, согласно комментарию,
У вас есть три активные игры:
все еще является частью этого подраздела.
Ключевое слово здесь соответствует комментарию, который не является кодом. Технически абзац - это ребенок тела. Я согласен, что кодировка и комментарии не совпадают, но код технически неверен. И нет никаких ограничений на то, что комментарии или контент могут существовать только в одном блоке.
Эта
<div>
<p>
</div>
</p>
технически некорректна, что вы можете увидеть более четко, если я добавлю CSS.
div { height:100px; width:auto; }
p {display:block; height:50px; width:300px}
Учитывая, что CSS, какой код выше, должен выглядеть?
Что совместимые браузеры могут сделать, это переписать вышеуказанный код в
<div>
<p></p>
</div>
<p></p>
После перезаписи браузера HTML и CSS могут быть отображены.