是语义化导航容器,仅用于主跳转路径如顶部菜单、分页控件等,须用包裹链接并添加aria-label;不可滥用在页脚协议或文章内链接中,且IE8需JS创建元素+CSS声明display。

导航条必须用 包裹,但不是所有链接组都适用
浏览器和屏幕阅读器靠 识别“主跳转路径”,它不是视觉容器,而是语义断言。常见错误是把页脚的“隐私协议”、文章末尾的“上一篇/下一篇”也塞进 ——这些属于上下文链接,不构成主导航。
使用场景很明确:顶部主导航菜单、左侧栏目树、分页控件(如“第1页 / 第2页 / 下一页”);而面包屑、友情链接、社交分享按钮都不该用 。
- 一个页面可有多个
,比如顶部主导航 + 底部快捷入口,但需用不同aria-label区分用途 -
内部不要混入 logo 图片、搜索框或按钮——它们不属于导航链接本身 - 若导航是横向排列,样式由 CSS 控制(如
display: flex),标签本身不带任何默认布局行为
里该用
还是 ?必须用
(或
)。导航链接天然具有顺序性与集合性,
提供语义层级和无障碍支持(屏幕阅读器会读作“列表,共 X 项”),而 是无意义容器,会切断这一链路。错误写法:
正确写法:
-
aria-label 是强建议项,不加则屏幕阅读器可能只读“导航”,无法说明这是什么导航
-
不可省略——它是列表项的语义单元,去掉后语义断裂,部分辅助技术会降级为普通文本
- 横向布局靠 CSS 实现(如
ul { display: flex; }),不要用 或浮动 hack
横向导航条嵌套在 里是否合规?
完全合规,而且是推荐结构。因为 表示“页面或区块的头部”,不单指顶部横幅;它天然适合包裹站点标识 + 主导航组合。
但要注意边界:不能把整个 当成导航容器,也不能反过来把 嵌套进 或 ——前者破坏 的唯一性,后者混淆内容角色。
- 典型合法结构:
站点名
- 禁止结构:
( 只能装核心内容,不含导航)
-
可多次出现,比如每个 也可有自己的 ,但其中的 必须是该文章内部的局部导航(如章节跳转),而非全站主导航
IE8–IE9 对 的兼容处理要点
IE8 及更早版本完全不认识 ,会把它当作文本节点忽略,导致样式丢失、结构错乱;IE9 支持标签但默认不设 display,需手动声明。
DeepBI DHTML 页面生成器
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur
下载
最小可行方案是两行代码:
document.createElement('nav');
加在 的 script 中;再配一条 CSS:
nav { display: block; }
现代项目若已放弃 IE 支持,可跳过;但若需兼容旧政企系统,这两句缺一不可。
- 仅靠 CSS 重置(如
nav { display: block; })对 IE8 无效,必须先用 JS 创建元素
- 不用引入 html5shiv 全量库,单行
document.createElement 足够,轻量且可控
- 注意:这段 JS 必须在 CSS 加载前执行,否则可能闪动
真正容易被忽略的,是 的语义边界——它不取决于位置(顶部/底部)、样式(横向/纵向)或数量(一个/多个),而只取决于“用户是否靠它完成主要页面跳转”。一旦这个判断出错,后续所有结构、样式、无障碍适配都会偏移。
必须用 错误写法: 正确写法: 完全合规,而且是推荐结构。因为 但要注意边界:不能把整个 IE8 及更早版本完全不认识 生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur 最小可行方案是两行代码: 加在 现代项目若已放弃 IE 支持,可跳过;但若需兼容旧政企系统,这两句缺一不可。 真正容易被忽略的,是 (或 )。导航链接天然具有顺序性与集合性, 提供语义层级和无障碍支持(屏幕阅读器会读作“列表,共 X 项”),而
aria-label 是强建议项,不加则屏幕阅读器可能只读“导航”,无法说明这是什么导航 不可省略——它是列表项的语义单元,去掉后语义断裂,部分辅助技术会降级为普通文本ul { display: flex; }),不要用 或浮动 hack
横向导航条嵌套在
里是否合规? 表示“页面或区块的头部”,不单指顶部横幅;它天然适合包裹站点标识 + 主导航组合。 当成导航容器,也不能反过来把 嵌套进 或 ——前者破坏 的唯一性,后者混淆内容角色。
站点名
( 只能装核心内容,不含导航) 可多次出现,比如每个 也可有自己的 ,但其中的 必须是该文章内部的局部导航(如章节跳转),而非全站主导航IE8–IE9 对
的兼容处理要点,会把它当作文本节点忽略,导致样式丢失、结构错乱;IE9 支持标签但默认不设 display,需手动声明。
document.createElement('nav');
的 script 中;再配一条 CSS:nav { display: block; }
nav { display: block; })对 IE8 无效,必须先用 JS 创建元素document.createElement 足够,轻量且可控 的语义边界——它不取决于位置(顶部/底部)、样式(横向/纵向)或数量(一个/多个),而只取决于“用户是否靠它完成主要页面跳转”。一旦这个判断出错,后续所有结构、样式、无障碍适配都会偏移。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










