You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vuetify侧边栏(drawer)展开时如何推动内容避免重叠?

Vuetify侧边栏展开时推动页面内容的实现方案

要让导航抽屉展开时推动页面内容而非覆盖,核心是调整v-navigation-drawer的类型属性,具体修改如下:

关键调整

  • 移除temporary和hide-overlay属性:这两个属性会让抽屉以悬浮覆盖的形式显示
  • 添加persistent属性:该类型的抽屉会纳入页面布局流,展开时自动推动右侧内容区域

修改后的NavBar.vue代码

<template>
  <nav>
    <v-app-bar flat app>
      <v-app-bar-nav-icon class="grey--text" @click="drawer = !drawer" />
      <v-app-bar-title class="text-uppercase grey--text">
        <span class="font-weight-light">Todo</span>
        <span>Ninja</span>
      </v-app-bar-title>
      <v-spacer />
      <v-btn text color="grey">
        <span>Sign Out</span>
        <v-icon>mdi-exit-to-app</v-icon>
      </v-btn>
    </v-app-bar>

    <v-navigation-drawer
      app
      persistent
      v-model="drawer"
      class="primary"
    >
      <v-list color="primary">
        <v-list-item
          v-for="(menu, i) in menus"
          :key="i"
          router
          :to="menu.route"
        >
          <v-list-item-icon>
            <v-icon v-text="menu.icon" class="white--text" />
          </v-list-item-icon>
          <v-list-item-content>
            <v-list-item-title v-text="menu.text" class="white--text" />
          </v-list-item-content>
        </v-list-item>
      </v-list>
    </v-navigation-drawer>
  </nav>
</template>

原理说明

persistent类型的导航抽屉会被Vuetify的布局系统识别,展开时会自动挤压v-content区域的宽度,实现内容被推动的效果;而原代码中的temporary抽屉属于脱离布局流的悬浮层,只会覆盖内容不会改变布局结构。

内容的提问来源于stack exchange,提问作者Ahmad Shiddiq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:54:33