css 菜单制作
水平导航菜单制作
使用 display: inline-block 或 flexbox 创建水平菜单。设置列表项为行内块元素,添加间距和悬停效果。
<ul class="horizontal-menu">
<li><a href="#">首页</a></li>
<li><a href="#">产品</a></li>
<li><a href="#">服务</a></li>
</ul>
.horizontal-menu {
list-style-type: none;
margin: 0;
padding: 0;
background-color: #333;
}
.horizontal-menu li {
display: inline-block;
}
.horizontal-menu a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.horizontal-menu a:hover {
background-color: #111;
}
垂直导航菜单制作
创建垂直菜单使用 display: block,列表项堆叠显示。添加边框和悬停效果增强视觉反馈。
<ul class="vertical-menu">
<li><a href="#">首页</a></li>
<li><a href="#">产品</a></li>
<li><a href="#">服务</a></li>
</ul>
.vertical-menu {
list-style-type: none;
margin: 0;
padding: 0;
width: 200px;
background-color: #f1f1f1;
}
.vertical-menu a {
display: block;
color: #000;
padding: 12px 16px;
text-decoration: none;
}
.vertical-menu a:hover {
background-color: #555;
color: white;
}
下拉菜单实现
使用 position: absolute 和 display: none/block 创建下拉效果。父元素设置相对定位,子菜单绝对定位。
<div class="dropdown">
<button class="dropbtn">下拉菜单</button>
<div class="dropdown-content">
<a href="#">选项1</a>
<a href="#">选项2</a>
<a href="#">选项3</a>
</div>
</div>
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {
background-color: #f1f1f1;
}
.dropdown:hover .dropdown-content {
display: block;
}
响应式导航栏
使用媒体查询创建移动友好的菜单。在小屏幕上显示汉堡菜单图标,点击展开完整菜单。
<div class="topnav" id="myTopnav">
<a href="#home" class="active">首页</a>
<a href="#news">新闻</a>
<a href="#contact">联系</a>
<a href="#about">关于</a>
<a href="javascript:void(0);" class="icon" onclick="toggleMenu()">☰</a>
</div>
.topnav {
overflow: hidden;
background-color: #333;
}
.topnav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.topnav a:hover {
background-color: #ddd;
color: black;
}
.topnav a.active {
background-color: #04AA6D;
color: white;
}
.topnav .icon {
display: none;
}
@media screen and (max-width: 600px) {
.topnav a:not(:first-child) {display: none;}
.topnav a.icon {
float: right;
display: block;
}
}
@media screen and (max-width: 600px) {
.topnav.responsive {position: relative;}
.topnav.responsive .icon {
position: absolute;
right: 0;
top: 0;
}
.topnav.responsive a {
float: none;
display: block;
text-align: left;
}
}
function toggleMenu() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
固定顶部/底部菜单
使用 position: fixed 创建始终可见的菜单。设置宽度和z-index确保菜单在其他内容上方。
.fixed-top {
position: fixed;
top: 0;
width: 100%;
z-index: 1000;
}
.fixed-bottom {
position: fixed;
bottom: 0;
width: 100%;
z-index: 1000;
}
带图标的导航菜单
使用字体图标或SVG增强菜单视觉表现。图标与文本对齐,保持一致的间距。

<ul class="icon-menu">
<li><a href="#"><i class="fa fa-home"></i> 首页</a></li>
<li><a href="#"><i class="fa fa-user"></i> 用户</a></li>
</ul>
.icon-menu a {
padding: 10px 15px 10px 30px;
position: relative;
}
.icon-menu .fa {
position: absolute;
left: 10px;
top: 50%;
transform: translateY(-50%);
}






