如何动态修改v-dialog的CSS样式 实现点击按钮调整对话框尺寸
实现方案
Vuetify 中 v-dialog 的 content-class 属性原生支持和 :class 完全一致的动态绑定语法,直接把原有的动态类逻辑从 :class 迁移到 :content-class 上即可,修改后的代码如下:
<v-dialog persistent scrollable v-model="dialog" :content-class="{ 'my-css-class-name': myBooleanFlag }" style="position: relative;" >
如果需要同时绑定固定类、多个动态类,也可以使用数组语法实现:
<v-dialog persistent scrollable v-model="dialog" :content-class="['base-dialog-class', { 'large-size': myBooleanFlag, 'small-size': anotherFlag }]" style="position: relative;" >
后续只需要通过按钮点击事件修改对应布尔变量的值,就能动态切换绑定的CSS类,实现弹窗尺寸调整的效果。
注意事项
如果你的项目使用的是Vue2 + Vuetify2技术栈,注意自定义的弹窗样式类不要写在带scoped属性的<style>块内,否则会因为Vue的样式隔离机制无法生效。你可以选择将自定义样式写在全局样式文件中,或者使用深度选择器穿透样式隔离。
内容的提问来源于stack exchange,提问作者Mishka
相关产品推荐
相关产品推荐

