在写一些vue项目时候,经常会引入一些组件。无论是自定义组件还是引入的外部组件。style标签上都有scoped属性。防止影响到其他页面上的样式。但是又是需要在父组件更改自组件的样式。就要用到组件穿透(也叫深度修改css)。
可用的方法有 /deep/ ::v-deep >>>
<style scoped>
/*编译前*/
// >>>
// 如果项目使用的是原生样式css, 那么你可以直接使用 >>> 穿透修改
.a >>> .b {
color:blue
}
// /deep/
// 项目中用到了预处理器 scss 、sass、less 操作符 >>> 可能会因为无法编译而报错 。可以使用 /deep/
// 但是vue-cli3可能会导致变异报错。这个时候用::v-deep
.a{
::v-deep .b {
color:blue
}
}
// ::v-deep
// ::v-deep在预处理器 scss 、sass、less 比较通用
.a ::v-deep .b {
color:blue
}
/*编译后*/
.a[data-v-fsdfg9] .b { color:blue}
</style>