vue 选择器_实现scoped深度作用选择器

时间: 2018-10-29阅读: 92标签: 选择器

vue项目中,当<style>标签有scoped属性时,它的 CSS 样式只作用于当前组件中的元素,父组件的样式将不会渗透到子组件中。如果你希望 scoped 样式中的一个选择器能够作用得“更深”,例如影响子组件,该如何实现呢?


1、对于css语法起作用

使用 >>> 操作符,代码如下:

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

上述代码将会编译成: 

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


 2、对于scss这类的预处理器

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

.a{
  /* ... */
  /deep/ .b{
    /* ... */
  }
}