更改 vuetify v-expansion-panel-content 的填充

db3*_*000 4 css vue.js vuetify.js

我有多个层叠的 v 扩展面板来可视化文件夹结构。就像这个例子中的 items 和 innerItems

  <v-expansion-panels
     accordion
     focusable
  >
     <v-expansion-panel
        v-for="(item, x) in items"
        :key="x"
     >
        <v-expansion-panel-header> {{ item.header }}</v-expansion-panel-header>
        <v-expansion-panel-content class="v-expansion-panel-content">
           <v-expansion-panels>
             <v-expansion-panel
                v-for="(innerItem, y) in innerItems"
                :key="y"
             >
                <v-expansion-panel-header> {{ innerItem.header }} </v-expansion-panel-header>
                <v-expansion-panel-content> {{ innerItem.content }} </v-expansion-panel-content>
               </v-expansion-panel>
            </v-expansion-panels>
        </v-expansion-panel-content>
     </v-expansion-panel>
  </v-expansion-panels>
Run Code Online (Sandbox Code Playgroud)

所以我明白了

在此处输入图片说明

但我需要内部扩展面板像这样在右侧

在此处输入图片说明

我通过在浏览器编辑器中编辑 .v-expansion-panel-content__warp 来实现这一点(只是为了得到我想要的样子)但是我怎样才能访问这个自生成的 div/css-class

在此处输入图片说明

已经有一个关于面板标题(Stylization vuetify 组件 v-expansion-panel__header)的问题,但我没有得到这个问题或答案......

也许有人可以指出我正确的方向或遇到了同样的问题,并且可以告诉我解决这个问题的方法!

谢谢!

AJ2*_*254 16

您可以使用VueJS 深度选择器来覆盖内容换行的样式,如下所示。该方法取决于您是否使用 Sass/Scss 等预处理器。

正如 Vue 深度选择器文档所述:

某些预处理器(例如 Sass)可能无法>>>正确解析。在这些情况下,您可以使用/deep/::v-deep组合符 - 两者都是别名>>>并且工作原理完全相同。

使用 CSS 时

用于>>>访问v-expansion-panel-content__wrap类。

.v-expansion-panel-content>>> .v-expansion-panel-content__wrap {
  padding: 0 !important;
}
Run Code Online (Sandbox Code Playgroud)

使用 SASS/SCSS 时

用于::v-deep访问v-expansion-panel-content__wrap类。

.v-expansion-panel-content::v-deep .v-expansion-panel-content__wrap {
  padding: 0 !important;
}
Run Code Online (Sandbox Code Playgroud)

仅修改特定扩展面板

您还可以添加自定义类/ID,以进一步缩小您想要设置样式的扩展面板的范围。例如:

<v-expansion-panel-content id="expansion-panel-content-1">
Run Code Online (Sandbox Code Playgroud)

具体可以修改如下:

.v-expansion-panel-content::v-deep .v-expansion-panel-content__wrap {
  padding: 0 !important;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的版本

将 Vuetify2.5.x与 NuxtJS结合使用2.15.x


db3*_*000 6

所以我把它修成这样

#innerExPan > * {
        padding-top: 0px;
        padding-right: 0px;
        padding-bottom: 0px;
        padding-left: 50px;
}

Run Code Online (Sandbox Code Playgroud)

并将 id 添加到

<v-expansion-panel-content id="innerExPan">
...
Run Code Online (Sandbox Code Playgroud)