当前位置:首页 > CSS

css制作横向菜单

2026-01-08 17:41:00CSS

使用浮动(Float)实现横向菜单

将菜单项的 display 属性设置为 float: left,使列表项横向排列。清除浮动避免影响后续布局。

ul.horizontal-menu {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
}

ul.horizontal-menu li {
  float: left;
}

ul.horizontal-menu li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

ul.horizontal-menu li a:hover {
  background-color: #111;
}

使用内联块(Inline-Block)实现横向菜单

将列表项的 display 属性设置为 inline-block,使其横向排列。注意处理元素间的空白间隙。

css制作横向菜单

ul.horizontal-menu {
  list-style-type: none;
  margin: 0;
  padding: 0;
  background-color: #333;
  font-size: 0; /* 消除空白间隙 */
}

ul.horizontal-menu li {
  display: inline-block;
  font-size: 16px; /* 恢复字体大小 */
}

ul.horizontal-menu li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

ul.horizontal-menu li a:hover {
  background-color: #111;
}

使用 Flexbox 实现横向菜单

使用 Flexbox 布局可以更灵活地控制菜单项的排列和对齐方式。

css制作横向菜单

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

ul.horizontal-menu li {
  flex: 1; /* 等分宽度 */
}

ul.horizontal-menu li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

ul.horizontal-menu li a:hover {
  background-color: #111;
}

使用 CSS Grid 实现横向菜单

CSS Grid 提供了更强大的网格布局能力,适合复杂菜单结构。

ul.horizontal-menu {
  list-style-type: none;
  margin: 0;
  padding: 0;
  background-color: #333;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}

ul.horizontal-menu li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

ul.horizontal-menu li a:hover {
  background-color: #111;
}

响应式横向菜单

添加媒体查询使菜单在不同屏幕尺寸下自适应显示。

ul.horizontal-menu {
  list-style-type: none;
  margin: 0;
  padding: 0;
  background-color: #333;
  display: flex;
  flex-wrap: wrap;
}

ul.horizontal-menu li {
  flex: 1;
  min-width: 120px;
}

ul.horizontal-menu li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

@media screen and (max-width: 600px) {
  ul.horizontal-menu li {
    flex: 100%;
  }
}

每种方法各有优势,浮动方法兼容性最好但较为老旧;Flexbox 和 Grid 是现代布局的首选方案,提供了更强大的控制能力;响应式设计确保菜单在不同设备上都能良好显示。

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

相关文章

vue实现导航菜单

vue实现导航菜单

Vue 实现导航菜单的方法 使用 Vue Router 实现基本导航 在 Vue 项目中安装 vue-router,通过路由配置实现页面跳转。路由配置文件中定义路径和组件映射,导航菜单通过 <r…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="d…

uniapp 长按菜单

uniapp 长按菜单

实现长按菜单的方法 在UniApp中实现长按菜单功能,可以通过以下几种方式完成,具体取决于平台和需求。 使用@longpress事件绑定 在模板中为元素添加@longpress事件监听,触发后显示自…

vue实现变色菜单

vue实现变色菜单

实现变色菜单的方法 在Vue中实现变色菜单可以通过多种方式完成,以下是几种常见的实现方法: 动态绑定class 通过Vue的v-bind:class或简写:class动态绑定CSS类,根据条件切换…

vue 实现菜单权限

vue 实现菜单权限

Vue 实现菜单权限的方法 基于路由守卫的权限控制 在 Vue 项目中,可以通过路由守卫(Navigation Guards)来实现菜单权限控制。这种方式适用于基于角色的权限管理,确保用户只能访问其权…

vue实现扇形菜单

vue实现扇形菜单

实现扇形菜单的思路 扇形菜单通常以圆形或扇形布局展示多个菜单项,可以通过CSS和Vue的动态渲染实现。关键在于计算每个菜单项的位置角度,并使用CSS的transform属性进行旋转定位。 基础HTM…