【发布时间】:2018-05-22 07:36:00
【问题描述】:
我正在尝试使用基于动态值的自定义属性,例如attr()。
例如,在下面的代码中,我尝试根据当前元素的 id 属性访问两个自定义属性。
:root{
--app-foo: 'Hello';
--app-bar: 'World';
}
div::after{
/* expected :
'Hello' for #foo
'World' for #bar */
content: var('--app-'attr(id));
}
<div id="foo"></div>
<div id="bar"></div>
但显然失败了。
有什么方法可以实现吗?
【问题讨论】:
-
JS 无法更改 CSS。您可以更改样式但不能更改 CSS
-
@Rajesh JS 无法更改 CSS。你确定吗?这是什么? developer.mozilla.org/en-US/docs/Web/CSS/…
-
Kaiido 我喜欢用buttons的id属性来补全css变量的名字,来获取合适的css变量插入到button的::after内容中。
-
@zer00ne 对不起,如果我不知道,但我可以
document.<styleSheets|someOtherProperty>.selector.someCssProperty = someValue吗? -
@Rajesh
document.styleSheets[0].insertRule("ul li::before {content:'\1f4a5'}", 0);
标签: javascript html css dynamic css-variables