当前位置:首页 > VUE

vue实现横排菜单

2026-03-09 10:56:25VUE

Vue 实现横排菜单的方法

使用 display: flex 布局

在 Vue 组件的样式中,通过 display: flex 实现横排菜单布局。flex-direction 默认为 row,因此可以直接使用。

<template>
  <div class="menu-container">
    <div v-for="item in menuItems" :key="item.id" class="menu-item">
      {{ item.name }}
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      menuItems: [
        { id: 1, name: '首页' },
        { id: 2, name: '产品' },
        { id: 3, name: '关于我们' },
        { id: 4, name: '联系' }
      ]
    }
  }
}
</script>

<style scoped>
.menu-container {
  display: flex;
  gap: 20px; /* 设置菜单项之间的间距 */
  padding: 10px;
  background-color: #f0f0f0;
}

.menu-item {
  padding: 8px 12px;
  cursor: pointer;
}
</style>

使用 ulli 标签

结合语义化标签 ulli,通过 CSS 将列表项横向排列。

vue实现横排菜单

<template>
  <ul class="horizontal-menu">
    <li v-for="item in menuItems" :key="item.id">
      <a href="#">{{ item.name }}</a>
    </li>
  </ul>
</template>

<style scoped>
.horizontal-menu {
  list-style-type: none;
  padding: 0;
  margin: 0;
  display: flex;
}

.horizontal-menu li {
  margin-right: 15px;
}

.horizontal-menu li a {
  text-decoration: none;
  color: #333;
}
</style>

使用 Vue Router 实现导航菜单

如果菜单需要路由跳转,可以结合 Vue Router 实现。

vue实现横排菜单

<template>
  <nav>
    <router-link 
      v-for="item in menuItems" 
      :key="item.id" 
      :to="item.path"
      class="menu-link"
    >
      {{ item.name }}
    </router-link>
  </nav>
</template>

<script>
export default {
  data() {
    return {
      menuItems: [
        { id: 1, name: '首页', path: '/' },
        { id: 2, name: '产品', path: '/products' },
        { id: 3, name: '关于我们', path: '/about' }
      ]
    }
  }
}
</script>

<style scoped>
nav {
  display: flex;
  gap: 20px;
  padding: 10px;
}

.menu-link {
  text-decoration: none;
  color: #333;
}

.menu-link.router-link-active {
  color: #42b983;
  font-weight: bold;
}
</style>

响应式横排菜单

通过媒体查询实现响应式布局,在小屏幕设备上调整为垂直菜单。

.menu-container {
  display: flex;
  gap: 20px;
}

@media (max-width: 768px) {
  .menu-container {
    flex-direction: column;
    gap: 10px;
  }
}

动态高亮当前菜单项

通过 Vue 的响应式数据动态高亮当前选中的菜单项。

<template>
  <div class="menu">
    <div 
      v-for="item in menuItems" 
      :key="item.id" 
      class="menu-item"
      :class="{ active: currentItem === item.id }"
      @click="currentItem = item.id"
    >
      {{ item.name }}
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      currentItem: 1,
      menuItems: [
        { id: 1, name: '首页' },
        { id: 2, name: '产品' }
      ]
    }
  }
}
</script>

<style scoped>
.active {
  color: #42b983;
  font-weight: bold;
}
</style>

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

相关文章

vue elementui实现菜单

vue elementui实现菜单

使用 Vue 和 Element UI 实现菜单 Element UI 提供了 el-menu 组件,可以轻松实现导航菜单功能。以下是一个完整的实现示例: 安装 Element UI 确保项目已安装…

vue实现导航菜单

vue实现导航菜单

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

vue实现菜单关闭

vue实现菜单关闭

Vue 实现菜单关闭功能 在 Vue 中实现菜单关闭功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-if 或 v-show 控制显示 通过数据绑定控制菜单的显示与隐藏。v-if 会完全移…

vue实现环形菜单

vue实现环形菜单

实现环形菜单的基本思路 环形菜单通常指围绕中心点呈圆形排列的菜单项,点击后可能有展开或选中效果。Vue实现的核心在于计算每个菜单项的位置和动态交互。 基础HTML结构 <templat…

vue实现顶部菜单

vue实现顶部菜单

使用 Vue 实现顶部菜单 在 Vue 中实现顶部菜单可以通过多种方式完成,以下是几种常见的方法。 使用 Vue Router 实现导航菜单 通过 Vue Router 可以轻松实现顶部菜单的导航功…

vue菜单权限怎么实现

vue菜单权限怎么实现

实现Vue菜单权限的基本思路 在Vue中实现菜单权限控制通常需要结合后端接口和前端路由管理。核心思路是根据用户角色或权限动态生成可访问的菜单,同时配合路由守卫进行访问控制。 基于路由配置的权限控制…