W3Schools.comと私は<menu>
、ツールバーメニューとリストフォームコントロールコマンドに使用する必要があるW3C.orgの状態を見たことを覚えていると思います。
では、メインメニューにはどちらを使用すればよいですか。Nav
、またはMenu
?それは重要ですか?
W3Schools.comと私は<menu>
、ツールバーメニューとリストフォームコントロールコマンドに使用する必要があるW3C.orgの状態を見たことを覚えていると思います。
では、メインメニューにはどちらを使用すればよいですか。Nav
、またはMenu
?それは重要ですか?
回答:
nav
内部リンク(a
要素)のグループに使用されます。通常、これはリンクが別のページに移動するか、AJAXページの場合はコンテンツを変更する必要があることを意味します。nav
アイテムをクリックすると、ある種のコンテンツの変更が予想されます。
menu
(コントロールのグループのために使用されますa
、input
、button
)。通常、これは入力がページ内で機能を実行する必要があることを意味します。menu
アイテムをクリックするとき、なんらかのJavaScriptの相互作用を期待してください。
nav
:サイトのナビゲーション。
menu
:Webアプリケーションのメニュー。
<li>
直下に要素をネストできます。要件は、の属性が省略されているか、に設定されていることです。仕様を参照してください要素と要素を。<menu>
<ul>
<menu>
type
"toolbar"
<li>
<menu>
これは、HTML5Doctorの投稿でnav
、それとの違いについてのセクションがありますmenu
(基本的に、実際のアプリで使用します)。あなたが望むように見えますnav
。
これは<menu>
通常、コンテキストメニューに使用されます。
MDNには適切なドキュメントがあります。https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu
<nav>
はセクション(<section>
または<article>
)であるため、HTMLドキュメントのアウトラインに表示されます。このため、<menu>
99%の時間を使用します。私には、<nav>
間に混在している<section>
と<menu>
追加の狭窄で、<nav>
一方、ナビゲーションのために特別に使用されるべきです<menu>
(ナビゲーションバーなど)のメニューと呼ばれるかもしれない何のためにすることができます。したがって、ほとんどのナビゲーションバーは、ナビゲーションバーであるにもかかわらず、の厳密な要件に適合せず<nav>
、<menu>
より適切です。
私はWeb開発のキャリアの中で、ナビゲーションバーをドキュメントのアウトラインの一部にしたいと思った状況を発見したことがありません。
<menu>
時間の99%、自分のナビゲーション「メニュー」は何であるページ、上の他のページや他のセクションへの静的なリンクになります-ウェブアプリではありませんウェブサイト上<nav>
のためである、従っ仕様に。
nav
タグの選択としては適切ではなくnav
、ヘッダーとコンテンツを含むセクションのようにドキュメントアウトラインの一部になることです。これは実際にはnav
、セクションのように振る舞うことを望むまれなシナリオです。menu
セマンティックの代替としての提案にすぎません。このように使用できないという仕様には何も見当たらない。合うようです。しかし、何らかの理由でメニューがWebアプリとして定義されているものだけであると思われるol
場合ul
は、代替品としてお勧めします。
<menu>
まだこの時点では貧しいサポートしています。(Chromeがサポートしていないのは本当ですか?)また、role="menu"
別の要素(divやnavなど)に属性を指定することで、まったく同じセマンティクスを実現できます。role属性は、要素のデフォルトのセマンティクスをオーバーライドします。