css制作菜单
水平菜单制作
使用display: inline-block或flex布局实现水平排列的菜单项。设置list-style: none移除列表默认样式,通过padding和margin调整间距。
<ul class="horizontal-menu">
<li><a href="#">首页</a></li>
<li><a href="#">产品</a></li>
<li><a href="#">服务</a></li>
</ul>
.horizontal-menu {
list-style: none;
display: flex;
gap: 20px;
padding: 0;
}
.horizontal-menu a {
text-decoration: none;
color: #333;
}
垂直菜单制作
通过display: block让菜单项垂直堆叠。可添加border或background增强视觉层次。

<ul class="vertical-menu">
<li><a href="#">首页</a></li>
<li><a href="#">产品</a></li>
<li><a href="#">服务</a></li>
</ul>
.vertical-menu {
list-style: none;
padding: 0;
width: 200px;
}
.vertical-menu li {
border-bottom: 1px solid #eee;
}
.vertical-menu a {
display: block;
padding: 10px;
text-decoration: none;
}
下拉菜单实现
结合:hover伪类和绝对定位实现下拉效果。父级需设置position: relative。
<ul class="dropdown-menu">
<li>
<a href="#">产品</a>
<ul class="submenu">
<li><a href="#">子项1</a></li>
<li><a href="#">子项2</a></li>
</ul>
</li>
</ul>
.dropdown-menu {
position: relative;
}
.submenu {
display: none;
position: absolute;
top: 100%;
left: 0;
}
.dropdown-menu li:hover .submenu {
display: block;
}
响应式菜单
使用媒体查询和汉堡图标实现移动端适配。通过JavaScript切换类名控制显示/隐藏。

<button class="menu-toggle">☰</button>
<ul class="responsive-menu">
<li><a href="#">首页</a></li>
<li><a href="#">产品</a></li>
</ul>
.responsive-menu {
display: flex;
}
.menu-toggle {
display: none;
}
@media (max-width: 768px) {
.responsive-menu {
display: none;
flex-direction: column;
}
.menu-toggle {
display: block;
}
.responsive-menu.active {
display: flex;
}
}
动画效果增强
通过transition属性添加平滑的悬停效果。可配合transform实现缩放或位移。
.menu-item {
transition: all 0.3s ease;
}
.menu-item:hover {
background-color: #f0f0f0;
transform: translateY(-2px);
}
图标菜单整合
使用Font Awesome或SVG图标与文本混合排列。通过flex布局对齐图标和文字。
<ul class="icon-menu">
<li>
<a href="#">
<svg width="20" height="20"><!-- 图标代码 --></svg>
<span>首页</span>
</a>
</li>
</ul>
.icon-menu a {
display: flex;
align-items: center;
gap: 8px;
}






