当前位置:首页 > 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 实现头像剪切的实现方法 使用 vue-cropperjs 库 vue-cropperjs 是一个基于 cropperjs 的 Vue 组件,专门用于图片裁剪。安装方式如下: npm inst…

vue筛选实现

vue筛选实现

Vue 筛选实现方法 使用计算属性实现筛选 计算属性是 Vue 中实现数据筛选的常用方式。通过定义一个计算属性,可以根据输入的条件动态过滤数据。 <template> <div…

vue实现表白

vue实现表白

Vue 实现表白页面 使用 Vue 可以快速创建一个动态、交互式的表白页面。以下是一个简单的实现方案: 基础结构 创建一个 Vue 项目或单文件组件,包含以下核心部分: <template&…

vue实现123456

vue实现123456

Vue 实现数字 123456 的显示 在 Vue 中显示数字 123456 非常简单,可以通过以下方法实现: 方法一:直接在模板中显示 <template> <div>…

vue实现视频

vue实现视频

Vue 实现视频播放的方法 在 Vue 项目中实现视频播放可以通过多种方式完成,以下是几种常见的方法: 使用 HTML5 的 <video> 标签 在 Vue 组件中直接使用 HTML…

vue实现pwa

vue实现pwa

Vue 实现 PWA 的步骤 Vue 结合 PWA(Progressive Web App)可以创建离线可用的 Web 应用。以下是实现方法: 安装 Vue CLI 并创建项目 确保已安装 Vue…