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

CSS中能否从一个元素获取属性值并赋值给另一个元素?

结论

原生CSS目前没有直接支持跨任意DOM元素读取属性值并赋值的语法,你示例中/* get value from #origin */的逻辑没有对应的原生CSS写法,不过有以下几种常用的替代方案可以实现相同的效果:

方案1:使用CSS自定义属性(变量,推荐)

这是纯CSS实现的最优方案,你只需要把公共的属性值定义为变量,两个元素同时引用即可,后续修改变量值两个元素的样式会同步更新:

/* 可以在公共父级或者:root全局作用域定义变量 */
:root {
  --shared-bg-color: #58ae12;
}
#origin {
  background-color: var(--shared-bg-color);
}
#reciever {
  background-color: var(--shared-bg-color);
}

如果两个元素存在父子层级关系,也可以直接把变量定义在源元素上,子元素直接引用:

#origin {
  --origin-bg: #58ae12;
  background-color: var(--origin-bg);
}
/* #reciever 是#origin的子元素时可以直接用父级定义的变量 */
#origin #reciever {
  background-color: var(--origin-bg);
}

方案2:使用JavaScript实现(适用于动态获取任意元素属性的场景)

如果两个元素没有固定层级关系、且源元素的样式可能动态变化,你可以用JS读取源元素的计算样式,赋值给目标元素:

const originEl = document.querySelector('#origin');
const receiverEl = document.querySelector('#reciever');

// 读取源元素的最终计算样式
const originBg = getComputedStyle(originEl).backgroundColor;
// 赋值给目标元素
receiverEl.style.backgroundColor = originBg;

如果需要监听源元素的样式变化同步更新,可以搭配MutationObserver实现监听逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:15:03