跳到正文

顶部导航条

网站或应用顶部的导航:左侧标志,中间链接(当前页下方有滑动的下划线),右侧放搜索、通知、头像等你自己的内容。有嵌套 <ul> 的链接自动成为下拉菜单;宽度小于 768px 时链接收进汉堡按钮打开的侧滑抽屉。

带行为 核心包 1 个事件

示例

在线试用 Markdown 版

代码

<header class="zh-nav" data-zh-nav aria-label="主导航">
  <a class="zh-nav-logo" href="#"><i aria-hidden="true"></i><span>ZhaoUI</span></a>
  <ul class="zh-nav-links">
    <li><a class="zh-nav-link" href="#" aria-current="page" data-icon="layout-dashboard">概览</a></li>
    <li><button class="zh-nav-link" type="button" data-icon="file-text">产品<i data-i="chevron-down"></i></button>
      <ul><li><a href="#">中控台</a></li><li><a href="#">数据分析</a></li></ul></li>
    <li><a class="zh-nav-link" href="#">价格</a></li>
  </ul>
  <div class="zh-nav-right"><button class="zh-nav-avatar" type="button" aria-label="账户">ZW</button></div>
</header>

属性

属性用在取值说明
data-zh-nav<header class="zh-nav"> 或 <nav>声明为导航条;直接子元素按顺序放 .zh-nav-logo、ul.zh-nav-links、.zh-nav-right
zh-nav-link<a> 或 <button>(class)一个导航项;当前页加 aria-current="page"
嵌套 <ul>含子链接的 <li> 里里面放 <a href>把外层的 zh-nav-link 变成下拉菜单触发器;手机抽屉里变成可展开的二级
data-icon<a> / 顶层 zh-nav-link图标名抽屉里该项前的图标(桌面端不显示)
zh-nav-iconbtn<button>(class)里面放 <i data-i>右侧的图标按钮,如通知;必须有 aria-label
zh-nav-avatar<button>(class)缩写文字圆形头像按钮,可配合 data-zh-dropdown 做账户菜单
zh-nav-search<button>(class)图标、提示文字和 zh-kbd外观像搜索框的按钮,点击后打开你自己的搜索;手机宽度自动隐藏

事件

事件触发于detail说明
zh:nav-select导航条undefined点击链接(桌面或抽屉里)。href 为 # 或为空时库不跳转,只切换当前页

样式类

zh-nav zh-nav-logo zh-nav-links zh-nav-link zh-nav-right zh-nav-iconbtn zh-nav-avatar zh-nav-search

无障碍

  • 导航条要有 aria-label;当前页用 aria-current="page" 标出,不只靠下划线颜色
  • 汉堡按钮带 aria-expanded 和 aria-controls;抽屉打开后焦点被限制在里面,Esc 或点击遮罩关闭并把焦点还给按钮
  • 下拉菜单:回车或点击展开,↓ 进入菜单项,Esc 关闭
  • 导航条本身不固定位置;需要吸顶时加 zh-sticky zh-top-0(公共类),或自己写 position: sticky
  • 不含超大菜单(带图标和说明的多列面板)和全局搜索面板;这些请自己用气泡卡片或对话框做

常见问题

顶部导航条是什么?

网站或应用顶部的导航:左侧标志,中间链接(当前页下方有滑动的下划线),右侧放搜索、通知、头像等你自己的内容。有嵌套 <ul> 的链接自动成为下拉菜单;宽度小于 768px 时链接收进汉堡按钮打开的侧滑抽屉。

怎么使用顶部导航条?

先在页面里引入 zhaoui.css 和 zhaoui.js(放在 </body> 前,不加 defer),再照本页「用法」里的标记书写。

顶部导航条有哪些事件?

zh:nav-select(点击链接(桌面或抽屉里)。href 为 # 或为空时库不跳转,只切换当前页)。

顶部导航条支持键盘和读屏吗?

导航条要有 aria-label;当前页用 aria-current="page" 标出,不只靠下划线颜色;汉堡按钮带 aria-expanded 和 aria-controls;抽屉打开后焦点被限制在里面,Esc 或点击遮罩关闭并把焦点还给按钮;下拉菜单:回车或点击展开,↓ 进入菜单项,Esc 关闭。

顶部导航条需要依赖框架吗?

不需要。ZhaoUI 是原生 HTML、CSS 和 JavaScript,不依赖 jQuery、Vue 或 React。