You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CSS中使用data-theme属性存储的十六进制颜色值

正确实现方法

你的问题出在两个关键错误上:自定义变量的语法规则错误,以及没有正确获取data-theme属性的实际值。以下是修正后的完整实现:

1. 保留你的JavaScript代码(这部分是正确的)

document.body.setAttribute("data-theme", "#a20000");

2. 修正CSS自定义变量的写法

你需要用CSS的attr()函数读取data-theme的属性值,同时遵守自定义变量的命名规则(以两个横杠开头):

/* 为body定义全局可用的自定义变量 */
body[data-theme] {
  --themeColor: attr(data-theme);
}

/* 其他类直接引用这个变量即可 */
.page-title {
  color: var(--themeColor);
}

.card-container {
  border-left: 3px solid var(--themeColor);
  background-color: rgba(var(--themeColor), 0.05);
}

关键说明

  • 自定义变量必须以--开头,你之前写的---theameColor多了一个横杠,还存在拼写错误(theame应为theme)。
  • 不能直接把"data-theme"作为变量值,必须用attr(data-theme)来提取元素上的data-theme属性值,这样才能把JS设置的十六进制颜色传递给CSS变量。

内容的提问来源于stack exchange,提问作者Vijay Shete

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:08:15