一文弄懂vue中样式穿透v-deep
Vue中的样式穿透是一种在组件内部应用样式时跨越多层组件边界的方法。在Vue中,可以使用>>>
、/deep/
、::v-deep
或 >>>
操作符来实现样式穿透。
>>>
和 /deep/
是SCSS或者SASS的语法,而 ::v-deep
是新的语法,推荐使用。
以下是使用 ::v-deep
的示例:
假设你有一个组件 MyComponent
,你想要在这个组件内部应用样式,并且要穿透到子组件内部。
<style scoped>
::v-deep .child-class {
color: red;
}
</style>
在这个例子中,::v-deep
选择器告诉Vue,应该穿透组件的边界,并应用 .child-class
内的样式。
如果你使用的是旧版本的Vue(2.5以前),可能需要使用 /deep/
或 >>>
语法:
<style scoped>
/deep/ .child-class {
color: red;
}
>>> .child-class {
color: red;
}
</style>
请注意,scoped
属性确保了样式仅应用于当前组件的元素,防止样式穿透造成全局样式污染。
评论已关闭