组件

导航

纯语义化 HTML 实现的基础导航栏组件。

查看源码
<nav>
<ul>
  <li><strong>Acme Corp</strong></li>
</ul>
<ul>
  <li><a href="#">About</a></li>
  <li><a href="#">Services</a></li>
  <li><a href="#">Products</a></li>
</ul>
</nav>

<ul> 会自动水平分布。

<li> 不带样式且内联排列。

<a> 仅在 :hover 时显示下划线。

你可以使用 .secondary.contrast.outline 类(无类版本中不可用)。

查看源码
<nav>
<ul>
  <li><strong>Acme Corp</strong></li>
</ul>
<ul>
  <li><a href="#" class="contrast">About</a></li>
  <li><a href="#" class="contrast">Services</a></li>
  <li><a href="#" class="contrast">Products</a></li>
</ul>
</nav>
查看源码
<nav>
<ul>
  <li><a href="#" class="secondary">...</a></li>
</ul>
<ul>
  <li><strong>Acme Corp</strong></li>
</ul>
<ul>
  <li><a href="#" class="secondary">...</a></li>
</ul>
</nav>

按钮

你可以在 <li> 内使用 <button>

按钮的尺寸会自动匹配链接的大小与外边距。

查看源码
<nav>
<ul>
  <li><strong>Acme Corp</strong></li>
</ul>
<ul>
  <li><a href="#">About</a></li>
  <li><a href="#">Services</a></li>
  <li><button class="secondary">Products</button></li>
</ul>
</nav>

你可以在 Nav 内使用下拉菜单

查看源码
<nav>
<ul>
  <li><strong>Acme Corp</strong></li>
</ul>
<ul>
  <li><a href="#" class="secondary">Services</a></li>
  <li>
    <details class="dropdown">
      <summary>
        Account
      </summary>
      <ul dir="rtl">
        <li><a href="#">Profile</a></li>
        <li><a href="#">Settings</a></li>
        <li><a href="#">Security</a></li>
        <li><a href="#">Logout</a></li>
      </ul>
    </details>
  </li>
</ul>
</nav>

垂直堆叠

<aside> 内,导航条目会垂直堆叠。

查看源码
<aside>
<nav>
  <ul>
    <li><a href="#">About</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">Products</a></li>
  </ul>
</nav>
</aside>

使用 <nav aria-label="breadcrumb">,可以把导航变成面包屑。

查看源码
<nav aria-label="breadcrumb">
<ul>
  <li><a href="#">Home</a></li>
  <li><a href="#">Services</a></li>
  <li>Design</li>
</ul>
</nav>

你可以通过局部 CSS 自定义属性 --pico-nav-breadcrumb-divider 更换分隔符。

查看源码
<nav
aria-label="breadcrumb"
style="--pico-nav-breadcrumb-divider: '✨';"
>
<ul>
  <li><a href="#">Home</a></li>
  <li><a href="#">Services</a></li>
  <li>Design</li>
</ul>
</nav>

溢出

<nav> 组件在容器上使用 overflow: visible;,并在子元素上使用负外边距,让链接在键盘导航下拥有美观的 ::focus-visible 样式,同时保持内容水平对齐。