当前位置:首页 > CSS

css 制作横向菜单

2026-01-28 13:06:15CSS

使用 Flexbox 制作横向菜单

Flexbox 是一种现代的 CSS 布局方式,非常适合制作横向菜单。通过设置 display: flex,可以轻松实现水平排列的菜单项。

.nav-menu {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  background-color: #333;
}

.nav-menu li {
  padding: 15px 20px;
}

.nav-menu li a {
  color: white;
  text-decoration: none;
}

.nav-menu li:hover {
  background-color: #111;
}

对应的 HTML 结构:

<ul class="nav-menu">
  <li><a href="#">首页</a></li>
  <li><a href="#">产品</a></li>
  <li><a href="#">服务</a></li>
  <li><a href="#">关于我们</a></li>
  <li><a href="#">联系</a></li>
</ul>

使用 Inline-Block 实现横向菜单

这是一种传统方法,通过设置 display: inline-block 让列表项水平排列。

css 制作横向菜单

.nav-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  background-color: #333;
  font-size: 0; /* 消除inline-block元素间的间隙 */
}

.nav-menu li {
  display: inline-block;
  font-size: 16px; /* 重置字体大小 */
  padding: 15px 20px;
}

.nav-menu li a {
  color: white;
  text-decoration: none;
}

.nav-menu li:hover {
  background-color: #111;
}

使用 Grid 布局创建横向菜单

CSS Grid 提供了另一种创建横向菜单的方式,特别适合需要更复杂布局的情况。

.nav-menu {
  display: grid;
  grid-template-columns: repeat(5, auto);
  list-style: none;
  padding: 0;
  margin: 0;
  background-color: #333;
}

.nav-menu li {
  padding: 15px 20px;
  text-align: center;
}

.nav-menu li a {
  color: white;
  text-decoration: none;
}

.nav-menu li:hover {
  background-color: #111;
}

响应式横向菜单

为适应不同屏幕尺寸,可以添加媒体查询使菜单在小屏幕上变为垂直排列。

css 制作横向菜单

.nav-menu {
  display: flex;
  flex-direction: row;
  list-style: none;
  padding: 0;
  margin: 0;
  background-color: #333;
}

@media (max-width: 600px) {
  .nav-menu {
    flex-direction: column;
  }
}

带下拉菜单的横向导航

如果需要创建带有下拉功能的横向菜单,可以结合 CSS 和少量 JavaScript。

.nav-menu {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  background-color: #333;
}

.nav-menu li {
  position: relative;
  padding: 15px 20px;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown:hover .dropdown-content {
  display: block;
}

对应的 HTML 结构:

<ul class="nav-menu">
  <li><a href="#">首页</a></li>
  <li class="dropdown">
    <a href="#">产品</a>
    <div class="dropdown-content">
      <a href="#">产品1</a>
      <a href="#">产品2</a>
      <a href="#">产品3</a>
    </div>
  </li>
  <li><a href="#">服务</a></li>
</ul>

每种方法都有其适用场景,Flexbox 是最简单直接的方案,Grid 适合更复杂的布局需求,而 inline-block 则提供了向后兼容的选择。响应式设计确保菜单在不同设备上都能良好显示。

标签: 横向菜单
分享给朋友:

相关文章

css二级菜单制作

css二级菜单制作

使用纯CSS实现二级菜单 通过嵌套HTML结构和CSS选择器实现二级菜单的显示与隐藏效果。以下是一个基础实现方案: HTML结构: <ul class="menu"> <li…

css二级菜单制作

css二级菜单制作

使用纯CSS制作二级菜单 HTML结构采用嵌套的<ul>和<li>标签,主菜单项包含子菜单: <nav class="menu"> <ul>…

vue实现菜单权限

vue实现菜单权限

基于路由的动态菜单权限控制 在Vue中实现菜单权限通常需要结合路由配置和用户角色/权限数据。以下是常见的实现方法: 路由配置中添加权限标识 // router.js const routes =…

vue实现横向表格

vue实现横向表格

横向表格的实现方法 在Vue中实现横向表格,可以通过调整CSS样式和数据结构来实现。横向表格与常规表格的区别在于数据的展示方向,通常需要将表头和数据行进行转置。 使用CSS Flex布局 通过Fle…

vue实现菜单递归

vue实现菜单递归

Vue 实现菜单递归的方法 在 Vue 中实现菜单递归通常需要组件调用自身,适用于多级嵌套的菜单结构。以下是几种常见的实现方式: 使用递归组件 递归组件是 Vue 中实现菜单递归的最直接方法。组件通…

vue 实现动态菜单

vue 实现动态菜单

动态菜单的实现思路 在Vue中实现动态菜单通常涉及从后端API获取菜单数据,根据用户权限或角色动态渲染菜单项。核心思路是将菜单数据与组件分离,通过数据驱动视图。 数据准备与API交互 创建菜单数据模…