javascript - CSS 变量不会被设置 | 电子
问题描述
我目前遇到了未设置 CSS 变量的问题,我正在使用电子,我试图像这样设置它:
for (let Button of ThemeButtons){
Button.addEventListener("click", e =>{
let Color = Button.style.backgroundColor;
let root = document.documentElement
console.log(Color)
root.style.setProperty('--CurrentA', Color);
root.style.setProperty('--CurrentB', Color);
root.style.setProperty('--CurrentC', Color);
});
}
我的变量定义如下:
:root {
--red:#923333;
--orange:#d68a00;
--green: #0d840d;
--blue: #1c4a90;
--purple: #6a1d8a;
--dark: #313131;
--gray: rgb(68, 68, 68);
--light: #b7b7b7;
--CurrentC: rgb(85, 85, 85);
--currentA: rgb(68, 68, 68);
--currentB: rgb(53, 53, 53);
}
颜色已打印,但未设置变量。我已经看到“BlinkFeatures”并且我也启用了这些功能,但我仍然无法让它工作。有谁知道发生了什么?
解决方案
我认为这是css特异性的问题。:root 指向文档树根(HTML 标记),document.documentElement
除了 :root 具有更高的特异性(见此处)
要解决此问题,您可能应该将变量覆盖设置为例如 body 标签或更改:root {}
为html {}
推荐阅读
- c++ - Qt 应用程序部署不起作用。缺少入口点和 dll
- javascript - JavaScript:意外的结果得到该月剩余的天数
- java - 对android项目的结构和MVC模式感到困惑
- u-sql - 在 USQL 中解析多个日期时间
- angularjs - AngularJS 表单验证在表单外的 href 链接上触发
- java - Eclipselink jpa - sql查询结果映射到java对象
- python - Python difflib:difflib 的 htmldiff 将多行合二为一
- cassandra - 为什么在截断表之前将一致性设置为 ALL
- c++ - 使用 random_shuffle 的多个类的向量不会按预期进行混洗
- spring - Spring 集成:消息驱动的通道适配器