用Flex实现横向导航栏只需三步:容器设display: flex,子项自动横排;清除列表默认样式并设间距;美化链接并添加悬停效果。响应式时用媒体查询改flex-direction为column即可。
用 Flex 实现横向导航栏,核心就三点:给容器设 display: flex,让子项自动排成一行,再微调对齐和间距。不需要浮动、不用清除浮动,也不用计算宽度,非常直观。
先写语义清晰的 HTML,用 包住无序列表,每个菜单项用 ,链接用 :
目标是让 并排显示,去掉默认列表样式,控制间距和对齐:
ul 设 display: flex,它就变成 Flex 容器,子项(li)默认横向排列list-style: none 去掉圆点,margin: 0; padding: 0 清除默认边距li 设 margin-right: 1rem 控制项间距离(最后一项可选用 :last-child 去掉右距).navbar ul {
display: flex;
list-style: none;
margin: 0;
padding:
0;
}
.navbar li {
margin-right: 1rem;
}
.navbar li:last-child {
margin-right: 0;
}
纯布局只是开始,加几行就能提升体验:
立即学习“前端免费学习笔记(深入)”;
a 标签默认有下划线且颜色偏蓝,建议重置:text-decoration: none; color: inherit;
a 加 padding: 0.75rem 1rem,并设 display: block
.navbar a:hover { background: #eee; border-radius: 4px; }
ul 上加 justify-content: center 或 flex-end
新手不必一上来就做汉堡菜单。先把桌面端 Flex 导航写稳,再用 @media 在小屏下改成竖排:
@media (max-width: 768px) { .navbar ul { flex-direction: column; } }
li 的 margin-right 改成 margin-bottom,适配竖向流