答案是通过HTML、CSS媒体查询和JavaScript实现响应式导航栏:使用flexbox布局使大屏水平排列,小屏隐藏菜单并显示汉堡按钮,JS控制菜单展开,核心为@media和类切换。

实现响应式导航栏的核心是让导航在不同屏幕尺寸下都能良好显示,小屏幕上可折叠,大屏幕上水平展开。以下是通过 CSS 和少量 HTML 实现的基本方法。
1. 基础HTML结构
使用语义化的 HTML 结构,便于样式控制:
2. 桌面端样式(默认显示)
在大屏上,导航项水平排列:
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem;
background-color: #333;
color: white;
}
.nav-menu {
display: flex;
list-style: none;
margin: 0;
padding: 0;
}
.nav-menu li a {
color: white;
text-decoration: none;
padding: 0.5rem 1rem;
}
3. 移动端隐藏菜单 + 汉堡按钮
在小屏幕上隐藏菜单,添加汉堡图标:
立即学习“前端免费学习笔记(深入)”;
.hamburger {
display: none;
flex-direction: column;
cursor: pointer;
}
.hamburger span {
width: 25px;
height: 3px;
background: white;
margin: 3px 0;
transition: 0.3s;
}
@media (max-width: 768px) {
.hamburger {
display: flex;
}
.nav-menu {
display: none;
flex-direction: column;
width: 100%;
background: #333;
}
.nav-menu.active {
display: flex;
}
}
4. 使用JavaScript切换菜单(轻量交互)
CSS 无法完全控制点击展开,需简单 JS:
点击汉堡按钮时,nav-menu 切换 active 类,配合 CSS 显示或隐藏菜单。
基本上就这些。关键在于利用 flexbox 布局、@media 查询 和简单的类切换实现响应式行为。不复杂但容易忽略细节,比如移动端的 z-index 或触控区域大小。根据项目需求可进一步美化动画或支持键盘访问。










