Vue项目中子组件样式设置了scoped 属性后一些样式失效问题
scoped 属性
当 style 标签有 scoped 属性时,它的 CSS 只作用于当前组件中的元素。
<template>
<div class="example">
hi
<p>scoped</p>
</div>
</template>
<style scoped>
.example {
color: red;
}
.example p {
color: yellow;
}
</style>
使用 scoped 后,父组件的样式将不会渗透到子组件中。不过一个子组件的根节点会同时受其父组件的 scoped CSS 和子组件的 scoped CSS 的影响。
一些样式失效解决方法
这时候 p 标签内的样式可能会失效。解决办法是使用深度作用选择器,即 >>> 操作符,或使用 /deep/ 或 ::v-deep 操作符取而代之——两者都是 >>> 的别名,同样可以正常工作。上面代码可以改成:
<style scoped>
.example >>> p {
color: yellow;
}
//或者
.example /deep/ p {
color: yellow;
}
</style>