您的位置:首页 > 汽车 > 时评 > 一个人看的免费视频高清直播_企业网查询天眼查_做网站的公司哪家好_宁波网站推广优化公司怎么样

一个人看的免费视频高清直播_企业网查询天眼查_做网站的公司哪家好_宁波网站推广优化公司怎么样

2025/6/9 16:16:31 来源:https://blog.csdn.net/weixin_72380235/article/details/148387365  浏览:    关键词:一个人看的免费视频高清直播_企业网查询天眼查_做网站的公司哪家好_宁波网站推广优化公司怎么样
一个人看的免费视频高清直播_企业网查询天眼查_做网站的公司哪家好_宁波网站推广优化公司怎么样

项目中的vue代码原本用的style标签来写css,现在想改成<style lang=scss scoped>,但是改完之后发现样式不对:
原来是:在这里插入图片描述
将style改成scoped之后变成了:在这里插入图片描述检查发现是之前定义的一些变量无法被识别,导致这些样式失效了:在这里插入图片描述

原因是我在原来的css中添加了:root的全局样式代码,
在这里插入图片描述

所以问题的原因是:

  • 作用域隔离​​:scoped 属性会为组件添加唯一属性标识(如 data-v-xxxxxx),这会限制 CSS 变量的作用域
  • ​​变量定义位置​​:在 scoped 样式中定义的 CSS 变量默认只在当前组件有效
  • ​​继承链中断​​:CSS 变量通常通过 :root 定义全局变量,但 scoped 样式会破坏这种继承关系

解决方式就是将这部分root的代码在组件外单独定义全局变量:

<style>
/* 全局变量定义(无scoped) */
:root {--shenlan: rgba(53, 86, 90, 1);--zhonglv: rgba(92, 176, 106, 1);--heilan: rgba(71, 85, 105, 1);/* 其他变量... */
}
</style><style lang="scss" scoped>
/* 带作用域的组件样式 */
.xuanzhuti {.button-continue {background-color: var(--zhonglv); /* 现在可以正常使用 */}
}
</style>

通过这种方法,就又成功实现了原先的效果:在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com