vue中,使用scss后,样式穿透失效的问题

2022-07-26 08:55:57

vue中,使用scss后,样式穿透失效的问题

  如题,vue项目中样式使用scss时,对于需要穿透的样式,使用>>> 穿透可能会不生效,解决办法也很简单:

<style lang="scss" scoped>.a>>>.b{
  font-size:24px;}</style>

修改为:

<style lang="scss" scoped>.a/deep/.b{
  font-size:24px;}</style>

或者:

<style lang="scss" scoped>
.a ::v-deep .b{font-size: 24px;}
</style>

  官方文档中对此也进行了说明:Scoped CSS,或者喜欢英文版的:Scoped CSS 英文版

tips:

 vue中的template模板中,style中分为全局样式和局部样式,区别是是否存在scoped 属性,当你的组件中的样式中添加了scoped属性,表明你组件中的样式值作用于当前的组件,与其他页面的样式互不相关。
  样式互不影响看似很不错,但是有些时候会存在一些问题,尤其是引用了第三方的ui组件后,需要修改其样式,而又不想去除scoped属性造成组件之间的样式污染,就需要使用到样式穿透,一般情况下使用>>> 即可。但是在前端工具越来越强大方便的具体,使用一些例如scss或者less就可能造成问题

不要慌,上面已经给出来解决方案。
  希望本篇文章对你有帮助,也欢迎告知其他解决方案!

  • 作者:lookingForw_4585
  • 原文链接:https://blog.csdn.net/weixin_43797046/article/details/108830819
    更新时间:2022-07-26 08:55:57