<nav> ou <menu> (HTML5)
W3Schools.com et je suis sûr que je me souviens avoir vu W3C.org état que <menu>
doit être utilisé pour la Barre d'outils des menus et la liste de contrôle de formulaire commandes.
Alors, qui dois-je utiliser pour mon menu principal? Nav
, ou Menu
? Est-il question?
- Vous pouvez lire w3fools.
- Qu'est ce qu'une "forme de contrôle de commande"?
InformationsquelleAutor | 2011-02-11
Vous devez vous connecter pour publier un commentaire.
nav
est utilisé pour les groupes de liens internes (a
éléments). Cela signifie généralement, les liens doivent voyager vers des pages distinctes, ou de changer le contenu, dans le cas d'une page AJAX. S'attendre à une sorte de modifier le contenu en cliquant sur unnav
élément.menu
est utilisé pour les groupes de contrôle (a
,input
,button
). En général, cela signifie que les entrées doivent exécuter une fonction à l'intérieur de la page. S'attendre à une sorte de javascript interaction lors d'un clic sur unmenu
élément.nav
: le de navigation pour le site.menu
: le menu pour une application web.<li>
éléments directement sous une<menu>
balise, sans la nécessité d'une<ul>
liste. L'exigence est que le<menu>
'stype
attribut est omis ou la valeur"toolbar"
. Voir les spécifications pour les le<li>
élément et le<menu>
élément.Voici un HTML5Doctor post sur
vl
avec une section sur comment il est différent demenu
(en gros, à utiliser dans les applications réelles). On dirait que vous vouleznav
.Avec le
<menu>
il est généralement utilisé pour les menus contextuels.MDN a une bonne documentation sur: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu
Le meilleur endroit pour obtenir cette réponse est le HTML 5 normes de leur autonomie.
Menu est défini dans HTML 5.1 2e Édition.
Nav est défini dans HTML 5.
Il y a des notes pour nav que je ne comprend pas mais qui sont importantes, mais je pense qu'il est préférable pour vous d'obtenir la définition de vous-même dans les normes.
Les définitions marquées dans ce post que les réponses sont proches de les corriger, mais ont étrangère états eux qui font que la réponse elle-même erronée.
<nav>
est une section (comme<section>
ou<article>
) donc il va apparaître dans votre document HTML contour. Pour cette raison, je voudrais utiliser<menu>
99% du temps. Pour moi,<nav>
est un mélange entre<section>
et<menu>
, avec l'ajout de constriction qui<nav>
doit être utilisé spécifiquement pour la navigation, tandis que<menu>
peut être pour tout ce qui pourrait être appelé un menu (y compris une barre de navigation). Ainsi, la plupart des barres de navigation, malgré le fait qu'ils sont des barres de navigation, ne correspondent pas aux exigences strictes de l'<nav>
, et<menu>
est plus approprié.Je n'ai jamais dans mon web, développement de carrière trouvé une situation où je voulais que ma barre de navigation pour faire partie de la structure du document.
<menu>
sur un site qui n'est pas une application web - 99% du temps, votre navigation sur 'menu' sera statique des liens vers d'autres pages ou d'autres sections sur la page, qui est ce que<nav>
est pour, selon la spécification.nav
n'est pas une bonne étiquette de choix, carnav
est une section de l'élément de sorte qu'il deviendra une partie de la structure du document que si c'est une section avec un en-tête et le contenu. C'est en effet l'un des rares scénarios où vous voulez que votrenav
d'agir comme une section.menu
était juste une suggestion comme une sémantique de remplacement. Je ne vois rien dans la spec, disant qu'il ne peut pas être utilisé de cette façon. Semble correspondre. Mais si pour une raison de croire que le menu est seulement pour ce que vous définissez comme une application web, puis-je recommanderol
ouul
comme un remplacement.<menu>
a encore le soutien des pauvres à cette époque. (Est-il vrai que Chrome n'a pas de support pour cela??) Aussi, vous pouvez obtenir exactement la même sémantique en fournissant lesrole="menu"
attribut à un autre élément (par exemple un div ou un nav). Le rôle de l'attribut remplace la valeur par défaut de la sémantique d'un élément.