CSS变量不能单独变量化linear-gradient的角度或关键词,必须将整个渐变函数作为字符串存入变量;因为语法解析早于变量替换,linear-gradient(var(--angle),...)会被视为无效。怎么用 CSS 变量控制 linear-gradient 的方向直接改 background-image 里的角度或关键词(比如 to right)就行,但必须把整个渐变函数写进变量里------CSS 不支持对渐变的"某个参数"单独变量化。常见错误是试图写 --angle: 45deg 然后在 linear-gradient(var(--angle), ...) 里用,这会失效,因为 linear-gradient() 不接受计算值作为第一个参数。正确做法是把整段渐变声明存进一个自定义属性:body { --bg-gradient: linear-gradient(135deg, #ff6b6b, #4ecdc4); background-image: var(--bg-gradient);}后续只需更新 --bg-gradient 的值,就能切换方向和颜色::rootdata-dir="vertical" { --bg-gradient: linear-gradient(to bottom, #5a67d8, #38a169);}:rootdata-dir="diagonal" { --bg-gradient: linear-gradient(110deg, #ed8936, #e53e3e);}为什么不能只变量化角度或关键词CSS 自定义属性本质是字符串替换,而 linear-gradient() 的语法解析发生在属性值计算阶段,早于变量展开。浏览器看到 linear-gradient(var(--angle), ...) 时,var(--angle) 还没被代入,整个函数就已判定为无效。立即学习"前端免费学习笔记(深入)"; RedClaw 百度推出的手机端万能AI Agent助手