css 制作菜单
使用CSS制作菜单
水平菜单
水平菜单通常用于导航栏,可以通过浮动或Flexbox实现。
<ul class="horizontal-menu">
<li><a href="#">首页</a></li>
<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;
overflow: hidden;
background-color: #333;
}
.horizontal-menu li {
float: left;
}
.horizontal-menu li a {
display: block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.horizontal-menu li a:hover {
background-color: #111;
}
垂直菜单
垂直菜单适合侧边栏导航,可以通过块级元素特性实现。
<ul class="vertical-menu">
<li><a href="#">首页</a></li>
<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 li a {
display: block;
color: #000;
padding: 8px 16px;
text-decoration: none;
}
.vertical-menu li a:hover {
background-color: #555;
color: white;
}
下拉菜单
下拉菜单需要结合CSS和少量JavaScript实现交互效果。
<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="#" class="active">首页</a>
<a href="#">产品</a>
<a href="#">服务</a>
<a href="#">关于</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";
}
}
圆角菜单
为菜单项添加圆角效果增强视觉吸引力。
.rounded-menu li a {
border-radius: 5px;
margin: 5px;
}
固定菜单
固定在页面顶部或底部的菜单。
.fixed-menu {
position: fixed;
top: 0;
width: 100%;
z-index: 100;
}
这些CSS技术可以单独使用或组合使用,根据具体需求创建各种风格的菜单。现代CSS技术如Flexbox和Grid可以进一步简化布局,而CSS变量可以方便地统一管理样式。







