Vuetify 删除对话框的框阴影
Vuetify remove dialog's box shadow
我想去掉vuetify对话框的box-shadow。图像-->
在 chrome devTools 中,如果我将 box-shadow 设置为 none 它会起作用。就像下图一样。
但是当我添加带有框阴影 none 的 class 时,它不起作用。代码-->
<v-dialog
v-model="assignedPRPaneldialog"
width="700"
content-class="vDialog"
>
<v-card v-if="GET_PRESS_RELEASE_ASSIGNED_DATA.length > 0">
<!-- {{ GET_PRESS_RELEASE_ASSIGNED_DATA }} -->
<v-card
v-for="(item, i) in GET_PRESS_RELEASE_ASSIGNED_DATA"
:key="i"
class="pa-2"
outlined
>
<CardPr :simple="true" :item="item" />
</v-card>
</v-card>
<v-card v-else>
<v-alert border="bottom" colored-border type="warning" elevation="0">
No Press Release yet.
</v-alert>
</v-card>
</v-dialog>
<style lang="scss" scoped>
div.vDialog {
box-shadow: none;
}
</style>
我应该在这里做什么?提前致谢。
从这段代码可以看出,阴影是通过 .v-dialog 添加到元素上的 class,所以您向错误的元素添加了“无阴影”样式。
.v-dialog {
border-radius: 6px;
margin: 24px;
overflow-y: auto;
pointer-events: auto;
transition: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
width: 100%;
z-index: inherit;
box-shadow: 0px 11px 15px -7px rgb(0 0 0 / 9%), 0px 24px 38px 3px rgb(0 0 0 / 5%), 0px 9px 46px 8px rgb(0 0 0 / 3%);
您可以将 class 直接添加到 <v-dialog>
组件,或使用 elevation-0
class.
编辑:
如果你想删除对话框的覆盖,使用 hide-overlay prop
根据 m4n0 的建议,发现我在 v-dialog 组件上使用的任何 class 都在 v-application--wrap 中的对话框中应用。但是正如您在 application--wrap 外部看到的那样,出现了另一个 v-dialog class。所以目前我从样式中删除了作用域属性,现在它给了我我想要的输出。可能以 class 为目标应该是更好的选择。我稍后会尝试一下。
我不确定这是有意为之还是我在某处犯了错误。
我知道有两种简单的方法可以从 v-dialog(和 v-menu)中删除 box-shadow。
1.全球:
<style>
.v-dialog {
box-shadow: none;
}
</style>
2。具体v-dialog(更好的方式):
<v-dialog content-class="elevation-0">
...
</v-dialog>
请注意,它必须是 content-class
而不是 class
。
如果你也想隐藏叠加层:
<v-dialog content-class="elevation-0" hide-overlay>
...
</v-dialog>
我想去掉vuetify对话框的box-shadow。图像-->
在 chrome devTools 中,如果我将 box-shadow 设置为 none 它会起作用。就像下图一样。
但是当我添加带有框阴影 none 的 class 时,它不起作用。代码-->
<v-dialog
v-model="assignedPRPaneldialog"
width="700"
content-class="vDialog"
>
<v-card v-if="GET_PRESS_RELEASE_ASSIGNED_DATA.length > 0">
<!-- {{ GET_PRESS_RELEASE_ASSIGNED_DATA }} -->
<v-card
v-for="(item, i) in GET_PRESS_RELEASE_ASSIGNED_DATA"
:key="i"
class="pa-2"
outlined
>
<CardPr :simple="true" :item="item" />
</v-card>
</v-card>
<v-card v-else>
<v-alert border="bottom" colored-border type="warning" elevation="0">
No Press Release yet.
</v-alert>
</v-card>
</v-dialog>
<style lang="scss" scoped>
div.vDialog {
box-shadow: none;
}
</style>
我应该在这里做什么?提前致谢。
从这段代码可以看出,阴影是通过 .v-dialog 添加到元素上的 class,所以您向错误的元素添加了“无阴影”样式。
.v-dialog {
border-radius: 6px;
margin: 24px;
overflow-y: auto;
pointer-events: auto;
transition: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
width: 100%;
z-index: inherit;
box-shadow: 0px 11px 15px -7px rgb(0 0 0 / 9%), 0px 24px 38px 3px rgb(0 0 0 / 5%), 0px 9px 46px 8px rgb(0 0 0 / 3%);
您可以将 class 直接添加到 <v-dialog>
组件,或使用 elevation-0
class.
编辑: 如果你想删除对话框的覆盖,使用 hide-overlay prop
根据 m4n0 的建议,发现我在 v-dialog 组件上使用的任何 class 都在 v-application--wrap 中的对话框中应用。但是正如您在 application--wrap 外部看到的那样,出现了另一个 v-dialog class。所以目前我从样式中删除了作用域属性,现在它给了我我想要的输出。可能以 class 为目标应该是更好的选择。我稍后会尝试一下。
我不确定这是有意为之还是我在某处犯了错误。
我知道有两种简单的方法可以从 v-dialog(和 v-menu)中删除 box-shadow。
1.全球:
<style>
.v-dialog {
box-shadow: none;
}
</style>
2。具体v-dialog(更好的方式):
<v-dialog content-class="elevation-0">
...
</v-dialog>
请注意,它必须是 content-class
而不是 class
。
如果你也想隐藏叠加层:
<v-dialog content-class="elevation-0" hide-overlay>
...
</v-dialog>