当前位置:首页 > 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>

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

相关文章

css制作菜单

css制作菜单

CSS 制作菜单的方法 使用 CSS 可以制作多种风格的菜单,包括水平菜单、垂直菜单、下拉菜单等。以下是几种常见的实现方式。 水平菜单 水平菜单通常用于导航栏,可以通过 display: inlin…

vue elementui实现菜单

vue elementui实现菜单

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

css制作二级菜单

css制作二级菜单

CSS制作二级菜单的方法 通过纯CSS实现二级菜单主要依赖HTML结构嵌套和CSS的:hover伪类选择器。以下是具体实现方式: HTML结构 <ul class="main-menu"&g…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

js实现菜单导航

js实现菜单导航

实现基础菜单导航结构 使用HTML和CSS创建菜单的基本结构,再通过JavaScript添加交互功能。HTML部分通常使用<ul>和<li>标签构建层级: <nav i…

uniapp 长按菜单

uniapp 长按菜单

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