<nav> или <menu>(HTML5) - PullRequest
       12

<nav> или <menu>(HTML5)

100 голосов
/ 11 февраля 2011

W3Schools.com, и я почти уверен, что помню, как W3C.org заявлял, что <menu> следует использовать для меню панели инструментов и перечисления команд управления формой.

Итак, какой из них я должен использовать для моего главного меню? Nav или Menu? Имеет ли это значение?

Ответы [ 5 ]

160 голосов
/ 11 февраля 2011

nav используется для групп внутренних ссылок (a элементов).Как правило, это означает, что ссылки должны переходить на отдельные страницы или изменять содержимое в случае страницы AJAX.Ожидайте какое-то изменение содержимого при нажатии на элемент nav.

menu используется для групп элементов управления (a, input, button).Обычно это означает, что входы должны выполнять функцию на странице.Ожидайте своего рода взаимодействие с JavaScript при нажатии на элемент menu.

nav: навигация для сайта.

menu: меню для веб-приложения.

10 голосов
/ 11 февраля 2011

Вот пост HTML5Doctor на nav с разделом о том, как он отличается от menu (в основном, используйте его в реальных приложениях). Похоже, вы хотите nav.

1 голос
/ 27 декабря 2018

Лучшее место, чтобы получить этот ответ - это сами стандарты HTML 5. Меню определено в HTML 5.1 2nd Edition .

Это, "... представляет группу команд."

Nav определено в HTML 5 .

Это, "... раздел страницы, который ссылается на другие страницы или части внутри страницы: раздел с навигационными ссылками."

Тамэто заметки для навигации, которые я не включил, но думаю, что они важны, но я думаю, что для вас лучше получить определение самостоятельно из стандартов.

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

1 голос
/ 01 октября 2013

С <menu> обычно используется для контекстных меню.

MDN имеет хорошую документацию: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu

0 голосов
/ 17 апреля 2014

<nav> - это раздел (например, <section> или <article>), поэтому он будет отображаться в структуре документа HTML. Из-за этого я бы использовал <menu> 99% времени. Для меня <nav> представляет собой смесь между <section> и <menu>, с дополнительным ограничением, что <nav> следует использовать специально для навигации, тогда как <menu> может быть для всего, что может называться меню (включая Панель навигации). Поэтому большинство панелей навигации, несмотря на то, что они являются панелями навигации, не соответствуют строгим требованиям <nav>, а <menu> более уместно.

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

...