HTML5 - заголовок и схема алгоритма - путаница

0

Я только что снова прочитал спецификацию 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 выделяет все еще как сломанный, как это было около года назад? Или есть инструмент или что-то, что теперь исправляет его?

Теги:

1 ответ

0

Итак, согласно комментарию,

У вас есть три активные игры:

все еще является частью этого подраздела.

Ключевое слово здесь соответствует комментарию, который не является кодом. Технически абзац - это ребенок тела. Я согласен, что кодировка и комментарии не совпадают, но код технически неверен. И нет никаких ограничений на то, что комментарии или контент могут существовать только в одном блоке.

Эта

<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 могут быть отображены.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню