javascript - 通过 Object.assign 设置 CSS 自定义属性
问题描述
我正在尝试通过 JavaScript 更新 CSS 自定义属性(“CSS 变量”)。这有效:
element.style.setProperty("--foo", "bar");
element.style.setProperty("--bar", "foo");
element.style.setProperty("border", "10px solid hotpink");
但是使用Object.assign
不起作用。应用了边框,但没有应用 CSS 变量--foo
和--bar
.
const styles = {}
styles["--foo"] = "bar";
styles["--bar"] = "foo";
styles["border"] = "10px solid hotpink";
Object.assign(element.style, styles);
有人知道这里有什么问题吗?
解决方案
请注意,该element.style
对象是映射样式的便利对象,但它不是“真正的 CSS”。
根据 Amelia 的评论,所有规范定义的 css 属性在style
对象上都有预定义的 getter/setter,但(必然)不是自定义属性的情况。因此,正确触发需要发生的事情的唯一方法是通过 getProperty/setProperty 机制。
推荐阅读
- ios - Firebase 匿名登录 - 为什么 FirebaseID 在登录到 Facebook 时会发生变化,但在未登录到 Facebook 时保持不变?
- python - 如何在 spark textFile 函数中使用自定义换行符?
- azure - 将数据从 DB2 加载到 Azure SQL DB
- bash - 试图了解 Bash 文件设置/结构
- html - Angular 服务器端渲染 - 向 angular.json 添加什么?
- oracle - 尝试从 selenium 连接到 oracle DB 时出错
- swift - 从函数 Swift 获取通用类型 UIView
- c# - PDFLib set_graphics_option如何在fillcolor选项中传递颜色列表
- snowflake-cloud-data-platform - Snowflake 中具有两种不同时间戳格式的 CSV 文件
- visual-studio-code - 如何修复颜色更改节点终端(2019 年 10 月更新后的 Visual Studio Code)?