答案是使用CSS媒体查询和flex布局实现响应式导航栏。首先构建包含logo和导航链接的HTML结构,通过flex布局在桌面端水平排列;设置默认样式后,用@media(max-width:768px)针对移动端调整flex方向为垂直,使导航项堆叠显示,并可添加隐藏的汉堡按钮用于小屏展开菜单,从而完成基础响应式设计。

在初级CSS项目中实现响应式导航栏,关键是使用CSS媒体查询来适配不同屏幕尺寸。通过检测设备宽度,我们可以调整导航栏的布局,使其在手机、平板和桌面端都能良好显示。
1. 基础HTML结构
先构建一个简单的水平导航栏结构:
2. 桌面端样式(默认)
设置导航栏在大屏幕上的水平排列:
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #333;
padding: 1rem;
}
.logo {
color: white;
font-size: 1.5rem;
}
.nav-links {
list-style: none;
display: flex;
gap: 2rem;
}
.nav-links a {
color: white;
text-decoration: none;
}
3. 使用媒体查询适配移动端
当屏幕变窄时,让导航项垂直堆叠,并隐藏logo或调整布局:
立即学习“前端免费学习笔记(深入)”;
@media (max-width: 768px) {
.navbar {
flex-direction: column;
text-align: center;
}
.nav-links {
flex-direction: column;
gap: 1rem;
margin-top: 1rem;
}
.logo {
margin-bottom: 0.5rem;
}
}
这样,在小于768px的设备上,导航栏会自动变为纵向排列,更适合小屏幕浏览。
4. 可选:添加汉堡菜单(进阶简化版)
若想进一步优化移动端体验,可用纯CSS模拟汉堡菜单切换(配合少量JavaScript更佳,但初级可先隐藏):
添加一个按钮用于小屏展开菜单:
用媒体查询控制显示:
.menu-btn {
display: none;
}
@media (max-width: 768px) {
.menu-btn {
display: block;
background: none;
border: 1px solid white;
color: white;
padding: 0.5rem 1rem;
cursor: pointer;
}
}
后续可通过JavaScript控制.nav-links的显示/隐藏,此处仅展示CSS响应式基础。
基本上就这些。掌握媒体查询和flex布局的结合,就能在初级项目中做出实用的响应式导航栏。不复杂但容易忽略细节,比如断点选择和弹性布局方向调整。










