javascript - 如何使用 CSS var() 设置全局变量(无需设置每个元素的属性?)
问题描述
在这个 JSFiddle 中:
https://jsfiddle.net/9e22zasm/946/
var()
正在使用 JavaScript 设置CSS setProperty
:
// CSS:
:root {
--footer-color: #2cba92 // default
}
footer {
background-color: var(--footer-color)
}
// JS:
const footer = document.querySelector('footer')
footer.style.setProperty('--footer-color', 'red')
问题是,我想设置var()
许多元素(它们都将共享相同的var()
):
// CSS:
:root {
--primary-color: #2cba92 // default
}
header {
background-color: var(--primary-color)
}
section {
background-color: var(--primary-color)
}
footer {
background-color: var(--primary-color)
}
--primary-color
更改页眉、节和页脚颜色的更简单方法是什么?因为如果我找不到方法,我将不得不一个一个地更改每个元素:
// JS:
const footer = document.querySelector('header')
header.style.setProperty('--primary-color', 'red')
const footer = document.querySelector('section')
section.style.setProperty('--primary-color', 'red')
const footer = document.querySelector('footer')
footer.style.setProperty('--primary-color', 'red')
解决方案
选择器以节点为:root
目标,该<html>
节点位于document.documentElement
.
所以要修改这个变量,设置这个节点的 css 属性:
onclick = e => {
document.documentElement.style.setProperty('--footer-color', '#FF00FF');
}
:root {
--footer-color: #2cba92;
}
footer {
background-color: var(--footer-color)
}
<footer>hello</footer>
推荐阅读
- python - 特定积分的期望值计算(通过 norm.pdf 和Integrated.quad)不适用于输入参数
- django - 如何在 Django 应用程序的用户配置文件模板中添加“删除”按钮,以便用户可以从应用程序中删除他/她的配置文件?
- c - 在链表中出现分段错误(核心转储)
- php - 需要具有自定义 Woocommerce 订单状态的批量状态更改功能
- c# - 使用表单 C# 将行添加到数据网格视图
- python - 散景:使用按钮单击从多个滑块更新
- git - GIT - 仅在不更改 .gitignore 文件的情况下忽略本地环境中的一些签入文件
- python - 为什么 python JSON 模块显示错误:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
- python - 正则表达式提取整数或浮点值,后跟一个单位,Python
- arrays - VBA Array函数将具有简单类型的变量转换为值并且不存储变量引用