我想通过类覆盖vuetify样式。
例如,从vuetify更改按钮的背景颜色。
所以,我创建了一个带有class的按钮:
<div id="app">
<v-btn class="some" color="success">Success</v-btn>
</div>
.some {
background-color:red;
}
但是背景色红色被vuetify覆盖了。
如何在不使用重要和主题的情况下解决这个问题?
以下是示例:https://stackblitz.com/edit/vue-js-gpkj6k
7条答案
按热度按时间eblbsuwk1#
使用vue和scoped元素,您将遇到/deep/,〉〉〉,::v-deep选择器。一切都在那里解释。因此,如果你想覆盖一个样式深度,这意味着你的根vuetify组件的子样式,你需要使用
::v-deep
选择器沿着scoped
属性。这为您提供:
霍普这个有用
xwbd5t1u2#
与Vuetify合作过,它的各种造型...怪癖我相信这一切都归结为编写css,比Vuetify更有针对性。
直接对元素进行样式化(
img
)从来都不是很好的做法,而是应用自己的类。这样你就可以声明
.my-card.v-card
并赢得特殊性战争,同时保持样式的作用域(在vue文件中,非作用域可能是调试的魔鬼)。一些Vuetify样式声明使用
!important
...所以我发现的唯一覆盖这些的方法是在覆盖上使用!important
。IMO从Vuetify可怕的决定有 * 任何 *!important
风格。了解
>>>, /deep/, ::v-deep
也是一件好事,因为它可以提供一个不过滤样式的解决方案。oaxa6hgo3#
尝试不要限定样式的范围,例如:
这样不行
这个会有用的
mec1mxoz4#
我发现的一个解决方法是通过给包含元素一个ID来专门针对自定义CSS中的元素,如下所示
然后使用这个
id
指定目标元素,如下所示:zzwlnbp85#
不知道这是否是/将是一个问题,你有,但我被困在它很长一段时间。
如果你使用限定作用域的样式(你应该这样做),你必须使用深度选择器
>>>
来定位子组件的类。我从来没有让深度选择器与SASS一起工作,所以你要么放弃使用SASS,要么两者都用。你可以在这里阅读深度选择器:https://vue-loader.vuejs.org/guide/scoped-css.html#mixing-local-and-global-styles
holgip5t6#
对我来说,最简单的方法是添加我的custom-reset.css文件,我已经把我的修复。例如,如果你像这样加载vuetify css:
您可以在该行之后导入custom-reset.css文件,因此您导入的内容将如下所示:
我有问题,vuetify风格打破了AdminLte 2造型。在我的例子中,custom-reset.css文件看起来像这样:
希望能对某人有所帮助!
knpiaxh17#
使用
Vuetify 3
,您将看到::v-deep usage as a combinator has been deprecated. Use ::v-deep(<inner-selector>) instead
警告::v-deep
用法。其他的方法没有给予我任何一个警告,也没有工作。更改样式的方法是,取决于您是否需要覆盖样式(添加
!important;
),或者只是附加一个新样式(不需要!important;
),例如: