Должны ли мы помещать тег «ul» внутрь тега «nav»?

Интересно, многие веб-сайты помещают тег внутри тега, из спецификации тег nav имеет теги привязки, и здесь пример в w3schools, почему многие сайты делают так:

<nav>
    <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
    </ul>
</nav>

Это правильно или мы должны сделать только так

<nav>
    <a href="#">Home</a>
    <a href="#">About</a>
</nav>

person palAlaa    schedule 27.07.2012    source источник
comment
Возможный дубликат Должен ли я использовать ‹ul›s и ‹li› внутри моей навигации?   -  person ECrownofFire    schedule 07.07.2018


Ответы (5)


Как правило, это не требуется, однако очень распространенной практикой является размещение элементов навигации в списке и использование CSS для их отображения в строке (при необходимости). Это не только совет для HTML5 — если вы отключите для примера CSS в браузере, ваше меню будет отображаться как:

начать обо мне контакт (вы можете это прочитать?)

со списком это будет:

  • Начало
  • обо мне
  • контакт

Подумайте сами, какую версию вы хотели бы видеть в случае проблем с отображением дизайна.

person biesior    schedule 27.07.2012

Здесь важно отметить, для чего были разработаны новые теги, такие как навигация, раздел, заголовок, нижний колонтитул и т. д. Сами по себе эти теги ведут себя не иначе, чем div. Причина, по которой люди начинают использовать их на своих сайтах html5, состоит в том, чтобы обеспечить контекст документа. Хотя я закатываю глаза, когда слышу такие термины, как «Веб 2.0», эти термины действительно отражают изменение нашего мышления о том, как мы используем Интернет. Всякий раз, когда вы слышите «Веб 3.0»… тьфу, на самом деле это означает только то, что люди пытаются думать о том, как сделать веб более семантическим, что означает, что пользовательский опыт будет более персонализированным в зависимости от поведения и предпочтений пользователя. Пометка вашего документа этими типами тегов помогает обеспечить этот контекст. Однако реализация того, как он будет представлен, по-прежнему зависит от вас, и я считаю, что оба примера, которые вы предоставили, совершенно верны.

Здесь есть достойная статья, в которой это обсуждается более подробно:

http://html5doctor.com/lets-talk-about-semantics/

person AceCorban    schedule 27.07.2012

Я всегда считал, что любой тег, который существует исключительно для размещения другого, единственного тега, является лишним.

Однако семантическая и осмысленная разметка — наука неточная, поэтому мнения у людей разные.

person Mitya    schedule 27.07.2012

Согласно спецификации элемента "nav", он представляет собой раздел страницы, который связан с другими страницами или частями страницы. Спецификация не предписывает какой-либо конкретной структуры в элементе «nav». Блок «ul», с другой стороны, группирует навигационные ссылки для логических и/или практических целей. Использование списков для блоков навигации приносит пользу пользователям, которые осуществляют навигацию в Интернете с помощью вспомогательных технологий, поскольку программа чтения с экрана может пропускать целые блоки навигации, переходя с одного уровня навигации на другой.

Рекомендации:

person Olegs Briska    schedule 27.07.2012

Я бы сказал: Да, если навигация многоуровневая (тогда она будет иерархически упорядочена). Нет, во всех остальных случаях: вы экономите данные, вы получаете скорость и читабельность.

IMHO UL следует использовать для отображения фактического неупорядоченного списка, то же самое говорится о таблицах, которые должны отображать табличные данные.

person pikilon    schedule 06.12.2014