css制作横向菜单
使用 Flexbox 制作横向菜单
Flexbox 是制作横向菜单的现代方法,代码简洁且兼容性好。以下是一个基本实现:
<nav class="horizontal-menu">
<a href="#">首页</a>
<a href="#">产品</a>
<a href="#">服务</a>
<a href="#">关于</a>
<a href="#">联系</a>
</nav>
.horizontal-menu {
display: flex;
gap: 1rem; /* 项目间距 */
background-color: #333;
padding: 0.5rem;
}
.horizontal-menu a {
color: white;
text-decoration: none;
padding: 0.5rem 1rem;
}
.horizontal-menu a:hover {
background-color: #555;
}
使用 Inline-Block 的传统方法
对于需要支持老旧浏览器的情况,可以使用 inline-block:
.horizontal-menu {
font-size: 0; /* 消除inline-block间隙 */
background-color: #333;
}
.horizontal-menu a {
display: inline-block;
font-size: 16px;
color: white;
text-decoration: none;
padding: 0.5rem 1rem;
}
.horizontal-menu a:hover {
background-color: #555;
}
响应式横向菜单
添加媒体查询使菜单在小屏幕上自动换行:
.horizontal-menu {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
@media (min-width: 768px) {
.horizontal-menu {
flex-wrap: nowrap;
}
}
带下拉菜单的横向导航
实现二级菜单的横向导航:
<nav class="dropdown-menu">
<ul>
<li><a href="#">首页</a></li>
<li>
<a href="#">产品</a>
<ul>
<li><a href="#">产品A</a></li>
<li><a href="#">产品B</a></li>
</ul>
</li>
</ul>
</nav>
.dropdown-menu ul {
display: flex;
list-style: none;
padding: 0;
margin: 0;
}
.dropdown-menu li {
position: relative;
}
.dropdown-menu li ul {
display: none;
position: absolute;
flex-direction: column;
}
.dropdown-menu li:hover ul {
display: flex;
}
固定在顶部的横向菜单
创建始终停留在视窗顶部的菜单:
.fixed-menu {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 1000;
display: flex;
justify-content: space-around;
background-color: rgba(0,0,0,0.8);
}
body {
padding-top: 50px; /* 防止内容被菜单遮挡 */
}






