Должен ли я использовать Nav или UL - PullRequest
9 голосов
/ 07 марта 2012

Я делаю навигационное меню, должен ли я использовать элемент <nav> или <ul> для этого?

Если я использую nav, мне, вероятно, потребуется использовать Shiv, чтобы он работал во всех браузерах.

Если это так, в чем преимущество использования nav перед ul?

EDIT:

Я знаю, что вы можете поместить ul в nav мой вопрос: зачем вообще использовать nav?

Ответы [ 8 ]

12 голосов
/ 07 марта 2012

Не путайте с <nav> и <ul>.Оба они могут использоваться вместе для меню навигации.

Nav - это тег HTML5.Если вы создаете что-то в HTML5, вы можете использовать <nav>, так как ограничений нет, но не все браузеры будут корректно отображать это.

Ul создает неупорядоченный список.Неупорядоченный означает, что элементы в списке не будут в каком-либо определенном порядке.Вы можете вложить элемент ul в nav для размещения своих ссылок.

Подробнее о тегах HTML и их работе здесь .

<ul>
    <li><a href="default.asp">Home</a></li>
    <li><a href="news.asp">News</a></li>
    <li><a href="contact.asp">Contact</a></li>
    <li><a href="about.asp">About</a></li>
</ul>

Это создаст панель навигации, вам нужно поместить несколько стилей CSS, чтобы она выглядела лучше.

Оба приведенных выше кода приведут к одному и тому же результату.Единственное отличие состоит в том, что nav сообщает браузеру, что этот элемент предназначен для навигации s.

4 голосов
/ 07 марта 2012

Зависит от случая, но большую часть времени вы будете использовать оба.

<nav>
    <ul>
        <li><a href="#">item1</a></li>
        <li><a href="#">item2</a></li>
        <li><a href="#">item3</a></li>
        <li><a href="#">item4</a></li>
        <li><a href="#">item5</a></li>
    </ul>
</nav>

<!-- Or just links -->

<nav>
    <a href="#">Item</a>
    <a href="#">Item</a>
    <a href="#">Item</a>
</nav>

Оба семантически верны.

3 голосов
/ 07 марта 2012

Как правило, вы должны использовать список внутри <nav>, например:

<nav>
  <ul>
    <li>...</li>
  </ul>
</nav>
3 голосов
/ 07 марта 2012

Элемент nav семантически более специфичен, поэтому обычно лучший выбор. Например, поисковая система поймет, что ссылки внутри нее представляют собой навигацию, а не простой список ссылок (которые могут быть рекомендованными публикациями или связанными элементами и т. Д.).

2 голосов
/ 07 марта 2012

nav - это семантический html5-элемент, который был введен, чтобы указать, что этот код является навигацией по вашей странице.Для «обычных несемантических» поисковых систем не имеет значения, используете ли вы ul или nav.Они поймут оба без проблем.В настоящее время использование этих семантических элементов не создает для вас реального преимущества.

Будьте осторожны, использование этих html5-элементов разрывает IE, поэтому вам необходимо «зарегистрировать» их, чтобы IE распознал их как стилевые html-элементы.

0 голосов
/ 18 августа 2016

Для создания меню в html5,

могут использоваться элементы nav и ul.
  • Элемент nav сообщает, что мы имеем дело с основным блоком навигации
  • Список сообщает, что ссылки внутри этого блока навигации образуют список элементов

Однако вы можете использовать и nav, и ul при создании меню,

<nav>
 <ul>
    <li>item 1</li>
    <li>item 2</li>
 </ul>
</nav>

Вам решать, выбрать ли nav или ul

0 голосов
/ 07 марта 2012

Просто мое мнение, я бы использовал ul просто по той причине, что IE 6 и 7 по-прежнему имеют значительную долю рынка, и я знаю, что мне не придется перепрыгивать через обручи, чтобы заставить ul работать , В любом случае, сейчас все проще.

0 голосов
/ 07 марта 2012

Если вы хотите использовать nav, но избегаете каких-либо проблем с браузерами, которые его не поддерживают, самое простое, что вы можете сделать, это не применять к ним какие-либо стили и не оборачивать их вокруг div, а вместо этого применять стиль.

<nav>
    <div class="nav">
        <ul>
            <li><a href="?">List Item Link</a></li>
            <li><a href="?">List Item Link</a></li>
            <li><a href="?">List Item Link</a></li>
        </ul>
    </div>
</nav>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...