当前位置:首页 > 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实现tab换行

vue实现tab换行

Vue实现Tab切换的常见方法 使用Vue实现Tab切换功能可以通过多种方式完成,以下是几种常见的方法: 动态组件结合v-if或v-show 通过v-if或v-show控制不同Tab内容的显示与隐…

tabbar 实现 vue

tabbar 实现 vue

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

vue实现driver

vue实现driver

Vue 实现 Driver.js 引导功能 Driver.js 是一个轻量级的 JavaScript 库,用于在网页上创建引导式导览。以下是在 Vue 项目中集成 Driver.js 的详细方法:…

vue实现日历

vue实现日历

Vue 实现日历的基本方法 使用 Vue 实现日历可以通过自定义组件或借助第三方库完成。以下是两种常见实现方式: 自定义日历组件 创建基于 Vue 的日历组件需要处理日期计算和渲染逻辑。核心是生成当…

vue实现uuid

vue实现uuid

使用 uuid 库生成 UUID 在 Vue 项目中,可以使用 uuid 库来生成 UUID。安装依赖: npm install uuid 在 Vue 组件中使用: import { v4 as…

vue实现指引

vue实现指引

Vue 实现指引功能 Vue 中实现指引功能可以通过多种方式完成,常见的有使用第三方库或自定义实现。以下是几种常见方法: 使用第三方库(如 driver.js) 安装 driver.js: np…