正在加载...
CSS 导航栏
布局一课勾勒了页面区域。导航栏是帮助人们在这些区域与页面之间移动的链接条。从语义化的链接列表开始,把它们排成从容的一行,再加 hover 提示——嵌套下拉菜单留给下一课。
导航工具箱
📊 导航一览
| 部件 | 日常职责 |
|---|---|
nav |
站点主/次链接的地标 |
ul / li / a |
结构化的目的地列表 |
| 列表重置 | 去掉项目符号与默认缩进,便于栏式布局 |
| 水平行 | Flex 或 inline-block,让链接并排 |
| Hover / 当前 | 指针反馈与「你在这里」 |
| 垂直导航 | 同一列表纵向堆叠——适合侧栏 |
导航仍然是链接。保持焦点轮廓可见,给舒适的 padding,不要把含义藏进一堆无名 div。
nav 内的语义列表
用 nav 包裹菜单,并把目的地保持为列表中的真实锚点。屏幕阅读器和未来的你会感谢这种结构。
.nav {
list-style: none;
margin: 0;
padding: 0;
}
.nav a {
text-decoration: none;
color: inherit;
}
用 Flex 做水平栏
简单的 flex 行把列表变成栏。gap 与 padding 胜过过窄的点击目标。(更深的 Flexbox 技巧稍后——干净导航栏这样就够。)
.navbar .nav {
display: flex;
flex-wrap: wrap;
gap: 0.25rem 1rem;
align-items: center;
}
.navbar .nav a {
display: inline-block;
padding: 0.5rem 0.75rem;
}
Hover 与当前页提示
在 hover 时给出反馈,并用类标记当前页。切勿把 :focus 轮廓当「清理」永久去掉。
.nav a:hover {
background: #f0f4ff;
border-radius: 0.35rem;
}
.nav a.is-current {
font-weight: 700;
color: #0b5fff;
}
垂直侧栏导航
同一列表可以在侧栏中堆叠。间距留宽一些,让每个链接都容易点到。
.sidenav .nav {
display: flex;
flex-direction: column;
gap: 0.35rem;
}
.sidenav .nav a {
padding: 0.55rem 0.75rem;
}
从容的导航习惯
使用 nav + 列表 + 可读 padding。水平栏优先用 flex 行。巨型菜单与下拉留给下一课。别把链接栏当成整页布局外壳。
.site-nav { /* landmark wrapper */ }
.site-nav__list { /* the ul */ }
.site-nav__link { /* each a */ }
.site-nav__link.is-current { /* active page */ }
自己动手
- 构建
nav > ul.nav > li > a并重置列表样式。 - 用 padding 与 gap 把链接排成水平 flex 行。
- 添加
:hover与.is-current样式。 - 把列表复制为垂直 sidenav 变体。
- 写一句话:什么该留给下拉菜单课,而不是这里?
常见错误
- padding 太小,触摸与鼠标目标都够不着
- 永久去掉焦点轮廓
- 用 div 汤代替
nav和列表 - 在本课里就做嵌套下拉巨型菜单
- 把导航栏当成整个网站布局
小结
- 导航栏是放在
nav里的结构化链接列表 - 先重置项目符号,再用 flex(或 inline-block)排列
- Hover 与当前样式引导而不杀死焦点
- 垂直导航是同一列表的堆叠
- 下拉菜单等下一课
🧠 测试您的知识
准备开始
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
8
问题
70%
及格要求
∞
时间
∞
尝试次数
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部