css 菜单制作
水平导航菜单制作
使用 display: inline-block 或 flexbox 实现水平菜单:
.nav-menu {
list-style: none;
padding: 0;
margin: 0;
background: #333;
}
.nav-menu li {
display: inline-block; /* 或使用 flexbox */
margin-right: 15px;
}
.nav-menu a {
color: white;
text-decoration: none;
padding: 10px 15px;
display: block;
}
.nav-menu a:hover {
background: #555;
}
垂直下拉菜单
通过 position: absolute 实现下拉效果:

.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background: #f9f9f9;
min-width: 160px;
box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.dropdown:hover .dropdown-content {
display: block;
}
响应式菜单(移动端适配)
使用媒体查询和汉堡图标切换:

.mobile-menu-btn {
display: none;
cursor: pointer;
}
@media (max-width: 768px) {
.mobile-menu-btn {
display: block;
}
.nav-menu {
display: none;
width: 100%;
}
.nav-menu.active {
display: block;
}
.nav-menu li {
display: block;
margin-right: 0;
}
}
动画效果增强
添加过渡动画提升交互体验:
.nav-menu a {
transition: background 0.3s ease;
}
.dropdown-content {
opacity: 0;
transition: opacity 0.3s ease;
}
.dropdown:hover .dropdown-content {
opacity: 1;
}
关键注意事项
- 确保菜单项通过语义化 HTML 结构实现(如
<nav>+<ul>/<li>)。 - 移动端需考虑触摸目标尺寸(建议最小 48x48px)。
- 使用
aria-expanded和aria-label提升无障碍访问性。
示例完整 HTML 结构:
<nav>
<button class="mobile-menu-btn">☰</button>
<ul class="nav-menu">
<li><a href="#">首页</a></li>
<li class="dropdown">
<a href="#">产品</a>
<div class="dropdown-content">
<a href="#">选项1</a>
<a href="#">选项2</a>
</div>
</li>
</ul>
</nav>






