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

如何移除Vuetify中v-list-item的多余间距

清除Vuetify列表项的冗余间距

你遇到的问题是Vuetify渲染v-list-item时自动生成的32px间距元素,常规scoped样式无法生效——这是因为scoped样式会被限制在当前组件内,没法穿透到Vuetify的子组件元素上。给你几个可行的解决方法:

  • 使用深度选择器突破scoped限制
    Vue允许用:deep()(Vue3)或::v-deep(Vue2)穿透scoped样式,直接修改Vuetify子组件的元素样式:

    <style scoped>
    :deep(.v-list-item__spacer) {
      width: 0 !important;
    }
    :deep(.v-list-item__prepend) {
      margin-right: 0 !important;
    }
    </style>
    加`!important`是为了覆盖Vuetify自带的高优先级样式。
    
    
  • 全局样式配合父类限定范围
    去掉style的scoped属性,同时给父容器v-list加自定义类,避免样式污染其他列表:

    <template>
      <v-list density="compact" class="tight-list">
        <v-list-item density="compact" v-for="date in datesList">
          <!-- 列表项原有内容 -->
        </v-list-item>
      </v-list>
    </template>
    
    <style>
    .tight-list .v-list-item__spacer {
      width: 0;
    }
    .tight-list .v-list-item__prepend {
      margin-right: 0;
    }
    </style>
    
    
  • 直接覆盖Vuetify的CSS变量
    Vuetify很多组件样式由CSS变量控制,你可以直接给v-list-item设置对应变量:

    <v-list-item 
      density="compact" 
      v-for="date in datesList"
      style="--v-list-item-spacer-width: 0; --v-list-item-prepend-margin-right: 0;"
    >
      <!-- 列表项原有内容 -->
    </v-list-item>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:18:20