欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用了第三方UI组件库后自定义修改样式未生效

程序员文章站 2022-06-07 14:29:59
...

原因

首先,就是在编译组件的时候,如果当前组件内style标签上有scoped属性时,就会给当前组件所有标签上添加一个【data-v-hash】属性,且在标签的css选择器的结尾加上和属性同样的字段,起到唯一性的作用,实现类似于"作用域"的作用,那么就使得当前组件内的样式只会作用于当前组件内的元素。

可以使用v-deep相关的知识解决,如下:

深度作用选择器

如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用 >>> 操作符:

<style scoped>
.a >>> .b { /* ... */ }
</style>

上述代码将会编译成:

.a[data-v-f3f3eg9] .b { /* ... */ }

有些像 Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用 /deep/::v-deep 操作符取而代之——两者都是 >>> 的别名,同样可以正常工作。

.a /deep/ .b
.a ::v-deep .b

这样我们只需要注意权重就可以了

ps:但是遇到内联样式仍然会失败,只能使用!import(但是不推荐),这种目前我能想到的就是使用笨办法在标签里一个个慢慢改