使用scoped的话样式就只能影响到当前组件而不能影响其子组件了,而有时因为设计问题,不同子组件间存在大量的样式共用,想着请教大神是否能让样式只能应用于本组件及其子组件。
使用scoped的话样式就只能影响到当前组件而不能影响其子组件了,而有时因为设计问题,不同子组件间存在大量的样式共用,想着请教大神是否能让样式只能应用于本组件及其子组件。
vue-loader
有个叫做Deep Selector
的东东(文档见:https://vue-loader.vuejs.org/...),例如:
<style scoped>
.a >>> .b { /* ... */ }
</style>
可得:
.a[data-v-f3f3eg9] .b { /* ... */ }
如果是sass或者scss的话就要用/deep/
代替>>>
,例如
<style lang="scss" scoped>
.a /deep/ .b { /* ... */ }
</style>
10 回答11.6k 阅读
2 回答3.2k 阅读✓ 已解决
5 回答2.2k 阅读
4 回答4.6k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
不使用scoped并自己把控制握好css命名空间
可以对每个组件都用特定唯一的class命名,且该组件的css都在该命名的范围内。
例如 header是index的子组件
最终渲染