css 菜单制作
水平导航菜单制作
使用 display: inline-block 或 flexbox 创建水平菜单。设置列表项横向排列,添加悬停效果增强交互性。
<nav class="horizontal-menu">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">产品</a></li>
<li><a href="#">服务</a></li>
</ul>
</nav>
.horizontal-menu ul {
list-style-type: none;
margin: 0;
padding: 0;
display: flex;
}
.horizontal-menu li {
margin-right: 15px;
}
.horizontal-menu a {
display: block;
padding: 10px 15px;
text-decoration: none;
color: #333;
background: #f0f0f0;
}
.horizontal-menu a:hover {
background: #ddd;
}
垂直下拉菜单实现
通过 position: absolute 隐藏子菜单,父元素悬停时显示。使用 CSS 过渡效果平滑展开。
<nav class="dropdown-menu">
<ul>
<li><a href="#">主菜单1</a>
<ul class="submenu">
<li><a href="#">子项1</a></li>
<li><a href="#">子项2</a></li>
</ul>
</li>
<li><a href="#">主菜单2</a></li>
</ul>
</nav>
.dropdown-menu ul {
list-style: none;
padding: 0;
}
.dropdown-menu > ul > li {
position: relative;
display: inline-block;
}
.submenu {
position: absolute;
top: 100%;
left: 0;
width: 200px;
opacity: 0;
transition: opacity 0.3s;
}
.dropdown-menu li:hover .submenu {
opacity: 1;
}
响应式汉堡菜单
使用媒体查询和复选框技术实现移动端折叠菜单。通过 transform 创建动画效果。
<input type="checkbox" id="menu-toggle">
<label for="menu-toggle" class="hamburger">☰</label>
<nav class="mobile-menu">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">关于</a></li>
</ul>
</nav>
#menu-toggle {
display: none;
}
.hamburger {
font-size: 24px;
cursor: pointer;
display: none;
}
.mobile-menu {
transition: transform 0.3s;
}
@media (max-width: 768px) {
.hamburger {
display: block;
}
.mobile-menu {
position: fixed;
top: 50px;
left: 0;
width: 100%;
transform: translateX(-100%);
}
#menu-toggle:checked ~ .mobile-menu {
transform: translateX(0);
}
}
菜单样式增强技巧
添加圆角边框和阴影提升视觉效果。使用 CSS 变量统一主题颜色,便于维护。

:root {
--menu-bg: #2c3e50;
--menu-text: #ecf0f1;
}
.enhanced-menu a {
padding: 12px 20px;
border-radius: 4px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
background: var(--menu-bg);
color: var(--menu-text);
transition: all 0.3s;
}
.enhanced-menu a:hover {
background: #34495e;
transform: translateY(-2px);
}






