最常用且语义清晰的html导航栏写法是用包裹,每个菜单项用包,并添加aria-label和aria-current="page"提升可访问性;禁用模拟或直塞等错误结构。

HTML 网站导航栏最常用、最语义清晰的写法,就是用 <nav></nav> 包裹一个 <ul></ul>,每个菜单项用 <li>,链接用 @#@#@#@#@#@#@#@#@#@0,方便辅助技术识别
常见错误写法及修正
这些看似省事的写法,实际会破坏结构语义或影响可访问性:
- ❌
<div class="nav">@#@#@#@#@#@#@#@#@#@1<br> <li>@#@#@#@#@#@#@#@#@#@2</li> <br> <li>@#@#@#@#@#@#@#@#@#@3</li> <br> <li>@#@#@#@#@#@#@#@#@#@4</li> <br> <br><h3>响应式与嵌套扩展(如二级菜单)</h3> <p>横向主菜单下拉二级项时,仍沿用嵌套 <code><ul></ul>结构,保持语义连贯:- 二级菜单放在对应一级
<li>内部,作为子<ul></ul> - 为避免屏幕阅读器误读,建议给子菜单
<ul></ul>加role="menu",其下的<li>加role="menuitem" - 纯 HTML 不控制显隐,需配合 CSS(如
:hover或.show类)和 JS(键盘导航支持)实现交互
为什么不用有序列表(ol)?
导航项之间没有先后执行顺序或编号意义,“首页”不是第1步、“联系”也不是最后一步;用
<ol></ol>会向辅助技术传递错误的层级或流程暗示,且默认数字样式也不符合常规设计习惯。无序列表<ul></ul>更准确表达“并列选项”的本质。 - 二级菜单放在对应一级











