直接调用 document.documentElement.style.setProperty('--color-primary', '#3b82f6') 即可修改 CSS 变量,前提是变量定义在 :root 或对应元素上;注意语法合法、作用域匹配、DOM 已挂载、前缀双短横线,且 IE 不支持。如何用 setProperty 修改 CSS 变量直接改 document.documentElement.style.setProperty('--color-primary', '#3b82f6') 就行,前提是变量定义在 :root 或目标元素上。CSS 变量本质是自定义属性,JS 通过 style.setProperty 操作的就是这层"属性",不是真实 CSS 规则。常见错误是写成 element.style.--color-primary = 'red' ------ 这语法非法,浏览器直接报 Invalid left-hand side in assignment;也有人试图用 cssText 覆盖整个 style 字符串,结果把其他内联样式全清掉了。只对已挂载到 DOM 的元素生效(document.body 未 append 前调用会静默失败)变量名必须带两个短横线前缀,比如 --spacing-md,不能漏掉或写成单横线如果变量在某个组件元素上定义(如 .card { --bg: white; }),就得调用 cardEl.style.setProperty('--bg', 'black'),不能只动 :root为什么 setProperty 不触发重排但可能触发重绘CSS 变量本身不直接控制布局,所以改它通常不会导致 layout(重排),但会影响 paint(重绘)------ 比如改了 --text-color,浏览器得重新绘制文字;改了 --box-shadow,得重绘阴影区域。性能敏感场景下,频繁调用 setProperty 改同一个变量(比如滚动中实时更新 --scroll-y),仍可能造成掉帧。这不是方法的问题,而是浏览器要不断计算依赖该变量的样式结果。立即学习"前端免费学习笔记(深入)"; ARTi.PiCS ARTi.PiCS是一款由AI驱动的虚拟头像生产器,可以生成200多个不同风格的酷炫虚拟头像
相关推荐
ClickHouseDB1 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来第九序言T1 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完m0_639906941 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOFJava后端的Ai之路1 小时前
CAS并发控制-从CPU指令到企业级乐观锁qq_426003961 小时前
UI自动化高频次登录login限流解决方案Sakura_j_h_1 小时前
EasyEDA PCB 快速设计Skills时间售卖铺2 小时前
触发器与函数实战:MySQL高效编程秘诀qetfw2 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证quantdash_cc2 小时前
如何验证历史行情的交易日期是否完整覆盖研究区间?I Am a robert girl3 小时前
当智能体学会“串通”:从长程交互中读懂涌现式合谋