当前位置:首页 > VUE

vue实现三栏菜单

2026-02-21 09:23:41VUE

Vue 实现三栏菜单的方法

使用 Flex 布局实现三栏菜单

通过 Vue 的模板结合 CSS Flex 布局,可以快速实现三栏菜单结构。

<template>
  <div class="three-column-menu">
    <div class="left-menu">
      <!-- 左侧菜单内容 -->
    </div>
    <div class="middle-menu">
      <!-- 中间菜单内容 -->
    </div>
    <div class="right-menu">
      <!-- 右侧菜单内容 -->
    </div>
  </div>
</template>

<style>
.three-column-menu {
  display: flex;
  height: 100vh;
}
.left-menu, .right-menu {
  width: 200px;
  background-color: #f0f0f0;
}
.middle-menu {
  flex: 1;
  background-color: #ffffff;
}
</style>

使用 Grid 布局实现三栏菜单

CSS Grid 提供了更灵活的布局方式,适合复杂的三栏结构。

vue实现三栏菜单

<template>
  <div class="grid-menu">
    <div class="left">Left Menu</div>
    <div class="center">Center Content</div>
    <div class="right">Right Menu</div>
  </div>
</template>

<style>
.grid-menu {
  display: grid;
  grid-template-columns: 200px 1fr 200px;
  height: 100vh;
}
.left, .right {
  background: #eee;
}
.center {
  background: #fff;
}
</style>

动态调整宽度

结合 Vue 的响应式特性,可以实现动态调整栏位宽度。

vue实现三栏菜单

<template>
  <div class="dynamic-menu">
    <div class="left" :style="{ width: leftWidth + 'px' }">
      <button @click="adjustWidth(-50)">-</button>
      <button @click="adjustWidth(50)">+</button>
    </div>
    <div class="center">Content</div>
    <div class="right" :style="{ width: rightWidth + 'px' }"></div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      leftWidth: 200,
      rightWidth: 200
    }
  },
  methods: {
    adjustWidth(delta) {
      this.leftWidth += delta;
    }
  }
}
</script>

<style>
.dynamic-menu {
  display: flex;
  height: 100vh;
}
.center {
  flex: 1;
}
</style>

嵌套路由的三栏布局

在 Vue Router 中实现三栏布局,中间区域作为路由出口。

<template>
  <div class="router-layout">
    <nav class="left-nav">
      <router-link to="/">Home</router-link>
      <router-link to="/about">About</router-link>
    </nav>
    <main class="main-content">
      <router-view></router-view>
    </main>
    <aside class="right-aside">
      Additional Info
    </aside>
  </div>
</template>

<style>
.router-layout {
  display: flex;
  min-height: 100vh;
}
.left-nav {
  width: 200px;
}
.main-content {
  flex: 1;
}
.right-aside {
  width: 250px;
}
</style>

响应式三栏菜单

通过媒体查询实现移动端适配,将三栏转为单栏。

<style>
.three-column-menu {
  display: flex;
}
.left-menu, .right-menu {
  width: 25%;
}
.middle-menu {
  width: 50%;
}

@media (max-width: 768px) {
  .three-column-menu {
    flex-direction: column;
  }
  .left-menu, .middle-menu, .right-menu {
    width: 100%;
  }
}
</style>

标签: 菜单vue
分享给朋友:

相关文章

vue实现级联

vue实现级联

Vue 实现级联选择器的方法 级联选择器(Cascader)是常见的表单组件,用于处理多层级联动数据选择(如省市区选择)。以下是几种实现方式: 基于 Element UI 的 el-cascader…

vue功能实现

vue功能实现

Vue 功能实现指南 Vue.js 是一个渐进式 JavaScript 框架,广泛用于构建用户界面。以下是 Vue 功能的常见实现方法。 数据绑定 Vue 的核心功能之一是数据绑定,通过 v-mod…

tabbar 实现 vue

tabbar 实现 vue

在 Vue 中实现 TabBar 功能可以通过多种方式完成,以下是几种常见的方法: 使用 Vue Router 结合自定义组件 创建一个自定义的 TabBar 组件,结合 Vue Router 实现…

vue实现tap

vue实现tap

Vue 实现 Tap 事件 在移动端开发中,Tap 事件比 Click 事件更常用,因为 Click 事件有 300ms 延迟。以下是几种在 Vue 中实现 Tap 事件的方法。 使用第三方库 安装…

vue实现github

vue实现github

Vue 实现 GitHub 相关功能 创建 GitHub API 请求 在 Vue 项目中,可以使用 axios 或 fetch 与 GitHub API 进行交互。需要在 GitHub 上创建个人访…

mui实现vue

mui实现vue

mui 实现 Vue 的步骤 mui 是一个轻量级的前端框架,常用于移动端开发。结合 Vue 可以实现高效的开发体验。以下是具体实现方法。 安装 mui 和 Vue 通过 npm 或 yarn 安装…