我们使用scoped实现组件的私有化,不对全局造成样式污染,表示当前style属性只属于当前模块.但我们难免会用到一些框架如element vant等,我们想要修改其中样式时,如果使用了scoped,则需要深度选择器来进行样式的更改.
使用场景:
当我们需要覆盖element-ui中的样式时只能通过深度作用选择器
style为css时的写法如下
<style lang="css" scoped>
.a >>> .b {
/* ... */
}
</style>
有些像 Sass 之类的预处理器无法正确解析 >>>。这种情况下你可以使用 /deep/ 或 ::v-deep 操作符取而代之——两者都是 >>> 的别名,同样可以正常工作。
style使用css的预处理器(less, sass, scss)的写法如下
第一种/deep/
<style lang="scss" scoped>
.a{
/deep/ .b {
/* ... */
}
}
</style>
第二种::v-deep
<style lang="scss" scoped>
.a{
::v-deep .b {
/* ... */
}
}
</style>
建议使用第二种方式,/deep/在某些时候会报错,::v-deep更保险并且编译速度更快.
网友评论