当前位置:首页 > VUE

vue实现页面分栏

2026-01-19 02:44:23VUE

Vue 实现页面分栏的方法

使用 CSS Flexbox 布局

通过 CSS Flexbox 可以快速实现分栏布局,适用于大多数现代浏览器。

<template>
  <div class="container">
    <div class="left-column">左侧内容</div>
    <div class="right-column">右侧内容</div>
  </div>
</template>

<style scoped>
.container {
  display: flex;
  height: 100vh;
}
.left-column {
  flex: 1;
  background-color: #f0f0f0;
  padding: 20px;
}
.right-column {
  flex: 1;
  background-color: #e0e0e0;
  padding: 20px;
}
</style>

使用 CSS Grid 布局

CSS Grid 提供了更灵活的分栏控制,适合复杂布局需求。

<template>
  <div class="grid-container">
    <div class="grid-left">左侧内容</div>
    <div class="grid-right">右侧内容</div>
  </div>
</template>

<style scoped>
.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 100vh;
  gap: 10px;
}
.grid-left {
  background-color: #f0f0f0;
  padding: 20px;
}
.grid-right {
  background-color: #e0e0e0;
  padding: 20px;
}
</style>

使用第三方组件库

Element UI 或 Ant Design Vue 等组件库提供了现成的布局组件。

<template>
  <el-row>
    <el-col :span="12">左侧内容</el-col>
    <el-col :span="12">右侧内容</el-col>
  </el-row>
</template>

<script>
import { ElRow, ElCol } from 'element-plus'
export default {
  components: { ElRow, ElCol }
}
</script>

响应式分栏布局

结合媒体查询实现响应式分栏,在不同屏幕尺寸下显示不同布局。

<template>
  <div class="responsive-container">
    <div class="responsive-left">左侧内容</div>
    <div class="responsive-right">右侧内容</div>
  </div>
</template>

<style scoped>
.responsive-container {
  display: flex;
  flex-direction: column;
}
.responsive-left, .responsive-right {
  padding: 20px;
}
@media (min-width: 768px) {
  .responsive-container {
    flex-direction: row;
  }
  .responsive-left, .responsive-right {
    flex: 1;
  }
}
</style>

可拖拽调整的分栏

实现可拖拽调整宽度的分栏,提升用户体验。

<template>
  <div class="drag-container">
    <div class="drag-left" ref="leftPanel">左侧内容</div>
    <div class="drag-divider" @mousedown="startDrag"></div>
    <div class="drag-right">右侧内容</div>
  </div>
</template>

<script>
export default {
  methods: {
    startDrag(e) {
      document.addEventListener('mousemove', this.onDrag)
      document.addEventListener('mouseup', this.stopDrag)
    },
    onDrag(e) {
      this.$refs.leftPanel.style.width = e.clientX + 'px'
    },
    stopDrag() {
      document.removeEventListener('mousemove', this.onDrag)
    }
  }
}
</script>

<style scoped>
.drag-container {
  display: flex;
  height: 100vh;
}
.drag-left {
  width: 50%;
  background-color: #f0f0f0;
  padding: 20px;
}
.drag-divider {
  width: 5px;
  background-color: #ccc;
  cursor: col-resize;
}
.drag-right {
  flex: 1;
  background-color: #e0e0e0;
  padding: 20px;
}
</style>

每种方法适用于不同场景,可根据项目需求选择最合适的实现方式。Flexbox 和 Grid 适合基础分栏,组件库能快速集成,响应式设计适配多设备,拖拽功能增强交互性。

vue实现页面分栏

标签: 页面vue
分享给朋友:

相关文章

vue实现适老化样式

vue实现适老化样式

Vue 实现适老化样式的关键方法 全局字体与字号调整 通过 CSS 变量或主题配置统一放大基础字号,建议正文不小于 18px,标题更大。在 App.vue 中设置全局样式: :root { --…

vue实现分类

vue实现分类

Vue实现分类功能的方法 使用v-for和计算属性 通过计算属性对数据进行分类处理,结合v-for渲染分类后的列表。示例代码: <template> <div>…

vue实现portal

vue实现portal

Vue 实现 Portal 功能 Portal 是一种将子节点渲染到父组件 DOM 层级之外的 DOM 节点的技术,常用于实现模态框、弹出层等需要脱离当前组件层级的场景。Vue 可以通过多种方式实现…

利用vue 实现

利用vue 实现

以下是利用 Vue 实现常见功能的几种方法,分为不同场景和技术要点: 数据绑定与响应式更新 Vue 的核心特性是数据绑定,通过 v-model 实现双向绑定: <template>…

vue实现分栏

vue实现分栏

Vue实现分栏的常见方法 使用CSS Flexbox布局 通过Flexbox可以快速实现分栏效果,适合大多数响应式布局场景 <template> <div class="con…

vue实现系统

vue实现系统

Vue 实现系统的核心方法 使用 Vue.js 构建系统时,需结合其响应式特性与组件化开发模式。以下为关键实现路径: 项目初始化与工程配置 通过 Vue CLI 或 Vite 创建项目骨架,推荐选择…