当前位置: 首页 > article >正文

css使用scoped之后样式失效问题

项目中的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>

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

http://www.lryc.cn/news/2397516.html

相关文章:

  • 【NLP】将 LangChain 与模型上下文协议 (MCP) 结合使用
  • 使用NMEA Tools生成GPS轨迹图
  • 1. pytorch手写数字预测
  • vs中添加三方库的流程
  • JAVASE面相对象进阶之static
  • 深入解析 Redis Cluster 架构与实现(一)
  • (12)java+ selenium->元素定位大法之By_link_text
  • 数据库MySQL集群MGR
  • Ubuntu22.04 安装 ROS2 Humble
  • Spring Boot,注解,@RestController
  • C++中新式类型转换static_cast、const_cast、dynamic_cast、reinterpret_cast
  • AXI 协议补充(二)
  • Linux 基础指令入门指南:解锁命令行的实用密码
  • 标准精读:2025 《可信数据空间 技术架构》【附全文阅读】
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-面试官和面试记录的分享功能(2)
  • Webug4.0靶场通关笔记05- 第5关SQL注入之过滤关键字
  • ONLYOFFICE文档API:更强的安全功能
  • 深入浅出MQTT协议:从物联网基础到实战应用全解析
  • 解析楼宇自控系统:分布式结构的核心特点与优势展现
  • C#数字图像处理(三)
  • STM32 智能小车项目 L298N 电机驱动模块
  • SQL Transactions(事务)、隔离机制
  • 【动画】unity中实现骨骼蒙皮动画
  • VSCODE的终端无法执行npm命令
  • Langchian - 自定义提示词模板 提取结构化的数据
  • 【机器学习基础】机器学习入门核心:Jaccard相似度 (Jaccard Index) 和 Pearson相似度 (Pearson Correlation)
  • QT之头像剪裁效果实现
  • apptrace 视角下移动端深度链接技术与优势​
  • 微前端之micro-app数据通信
  • 【GPT入门】第40课 vllm与ollama特性对比,与模型部署