💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[toc] ## scoped原理 scoped的原理是使用属性选择器和类名进行交集选择,比如`.wrapper[data-v-xxx]{}` 这样在scoped里写的css都会有一个随即生成的`[data-v-xxx]` ## 为什么需要穿透scoped? scoped看起来很美,但是,在很多项目中,会出现这么一种情况,即:引用了第三方组件,需要在组件中局部修改第三方组件的样式,而又不想去除scoped属性造成组件之间的样式污染。此时只能通过特殊的方式,穿透scoped。 ``` <style scoped> 外层 >>> 第三方组件 { 样式 } </style> ``` 通过 >>> 可以使得在使用scoped属性的情况下,穿透scoped,修改其他组件的值。 >[danger] 以上为stylus的穿透方式,如果是sass/less,穿透符为 `/deep/` ### 第二种方式 其实,还拥有一种曲线救国的方法,即在定义一个含有scoped属性的style标签之外,再定义一个不含有scoped属性的style标签,即在一个vue组件中定义一个全局的style标签,一个含有作用域的style标签: ``` <style> /* global styles */ </style> <style scoped> /* local styles */ </style> ``` 此时,你只需要将修改第三方样式的css写在第一个style中即可。