当前位置:首页 > 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 提供了更灵活的布局方式,适合复杂的三栏结构。

<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 的响应式特性,可以实现动态调整栏位宽度。

<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 指令实现

Vue 指令实现 Vue 指令是 Vue.js 提供的特殊属性,用于在 DOM 元素上添加特殊行为。指令以 v- 前缀开头,例如 v-model、v-if、v-for 等。以下是实现自定义指令和常用内…

ssh vue 实现

ssh vue 实现

使用SSH连接Vue项目部署的服务器 在Vue项目开发或部署过程中,可能需要通过SSH连接到远程服务器进行配置或维护。以下是实现SSH连接并部署Vue项目的关键步骤: 生成SSH密钥对 在本地终端…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue原理实现

vue原理实现

Vue 原理实现的核心机制 Vue.js 的核心原理基于响应式系统、虚拟 DOM 和模板编译。以下是其核心实现机制的分解: 响应式系统 Vue 使用 Object.defineProperty(Vu…

vue实现popup

vue实现popup

Vue 实现 Popup 弹窗 使用 Vue 原生组件 创建一个基本的 Vue 组件作为弹窗,通过 v-if 或 v-show 控制显示隐藏。 <template> <div&…

vue动画实现

vue动画实现

Vue动画实现方法 Vue提供了多种方式实现动画效果,主要通过内置组件和第三方库完成。 使用<transition>组件 Vue内置的<transition>组件可以为元素…