首先我们应该知道在scoped里修改是无法做到修改vant样式的,这是外部引入的样式,下面的方法可以解决修改vant样式的同时,使用scoped,防止样式污染
第一种:加上父级自己定义的类名.common-container >>>
(只作用于css)
<style lang="scss" scoped>
.common-container >>> .van-pull-refresh__head {
color: #fff;
}
</style>
第二种:有些Sass 、Less之类的预处理器无法正确解析 >>>
。可以使用 /deep/
操作符或 ::v-deep
操作符( 两者都是>>>
的别名)
<style lang="scss" scoped>
/deep/ .van-list__error-text,
/deep/ .van-list__finished-text,
/deep/ .van-list__loading ,
/deep/ .van-pull-refresh__head ,
/deep/ .van-loading__text {
color: #fff;
}
</style>
.common-container{
&::v-deep .van-pull-refresh__head{
color: #fff;
// ...
}
}
如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,你可以使用
>>>
操作符:
handlebars <style scoped> .a >>> .b { /* ... */ } </style>
上述代码将会编译成:
handlebars .a[data-v-f3f3eg9] .b { /* … */ }
有些像 Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用
/deep/
或::v-deep
操作符取而代之——两者都是>>>
的别名,同样可以正常工作。
参考
https://blog.csdn.net/idomyway/article/details/94659598
作者:iChangebaobao
原文链接:https://blog.csdn.net/iChangebaobao/article/details/105514164