【问题标题】:How to access css variable defined within css class from javascript?如何从javascript访问css类中定义的css变量?
【发布时间】:2020-11-02 11:47:48
【问题描述】:

我在一个 css 类中定义了 css 变量。

.popup {
    --popup-opacity: 0;
    --popup-visibility: hidden;
    opacity: var(--popup-opacity);
    visibility: var(--popup-visibility);
}

我想使用 javascript 更新它。如果变量在根元素内,则以下代码有效:

 document.documentElement.style.setProperty('--popup-opacity', 1);
 document.documentElement.style.setProperty('--popup-visibility', 'visible');

当在 css 类中定义变量时,我不知道如何使它工作。请帮忙。

【问题讨论】:

标签: javascript css css-variables


【解决方案1】:

这就是 JS 中继承的工作原理。

如果您使用类选择器在规则集中设置了变量的值,那么该元素将不会从更高的 DOM 继承。

如果您设置.popup { color: red; },然后想知道为什么设置为document.documentElement.style.setProperty('color', "red");,它仍然是红色的,您会遇到同样的问题

在 DOM 更高层定义变量:

html {
    --popup-opacity: 0;
    --popup-visibility: hidden;
}

.popup {
    opacity: var(--popup-opacity);
    visibility: var(--popup-visibility);
}

然后在同一级别或在其与读取位置之间的一级覆盖它们:

 document.body.style.setProperty('--popup-opacity', 1);
 document.body.style.setProperty('--popup-visibility', 'visible');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-05
    • 2017-06-03
    • 2015-09-08
    • 1970-01-01
    • 2017-07-28
    • 2013-08-11
    相关资源
    最近更新 更多