のよりクリーンなマークアップnav > a
は確かに魅力的ですが、サブメニューとドロップダウンメニュー(他の回答では言及されていないもの)の質問を検討してください。HTMLを使用すると、あるリストを別のリスト内にネストできます。これは、このようなメニューを構成するためのエレガントな(そして、あえてセマンティックな)方法です。
<nav>
<ul>
<li><a href="#foo">foo</a></li>
<li><a href="#bar">bar</a>
<ul>
<li><a href="#qux">qux</a></li>
<li><a href="#quux">quux</a></li>
</ul>
</li>
<li><a href="#baz">baz</a></li>
</ul>
</nav>
a
要素をネストすることはできないため、次のようnav > a
にラッピングを開始しない限り、除外されますdiv
。
<nav>
<a href="#foo">foo</a>
<a href="#bar">bar</a>
<div>
<a href="#qux">qux</a>
<a href="#quux">quux</a>
</div>
<a href="#baz">baz</a>
</nav>
いくつかの人気のあるCSSフレームワーク(BulmaやSemantic / Fomantic UIなど)は、ドロップダウンのあるナビゲーションバーに対してこのようなことを行います。ですから、それは可能ですが、私にはちょっと不格好な感じがします。最初の例のように、実際には内部にネストされqux
てquux
いません。bar