- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想通过JavaScript更好的控制CSS变量,需要对CSSRule对象进行操作。
这是获取它的 2 种方法的 JavaScript 代码:
// get from the CSSStyleSheet of a <style> element
document.getElementsByTag('style')[0].sheet.rules;
// direct way
document.styleSheets[0].rules;
我已经把 CSS 写在一个文件里了,所以我必须通过一个元素来获取它。
但是,我发现您只能从元素中获取带有空 CSSRule 的 CSSStyleSheet 对象。
link_ele.sheet.rules; // null
我很生气。
//顺便说一句,我试过了 this method ,但它只是行不通(返回一个空数组),感谢@SamuilPetrov 告诉我
最佳答案
我已经找到了针对这种情况的解决方案:您可以简单地用创建的元素覆盖样式表。
let style = { };
let setCSSVariable = (name, value) => style.rules.setProperty('--' + name, value);
document.addEventListener('DOMContentLoaded', function() {
style.element = document.createElement('style');
document.head.appendChild(style.element);
style.sheet = style.element.sheet;
style.sheet.insertRule(/* CSS selector */);
style.rules = style.sheet.cssRules[0].style;
});
关于javascript - 如何从 HTMLLinkElement 获取 CSSStyleSheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45881018/
我知道document.styleSheets它由页面中的所有有效样式表组成。我想知道我是否可以创建一个新的并通过 javascript 将其附加到当前列表。 我试过document.styleShe
我不知道我哪里错了:/。当我运行这段代码时,我得到的只是一个空白元素。我似乎无法让 insertRule 方法执行任何操作(甚至不产生错误)。我错过了什么吗? Test v
我无法弄清楚为什么 .cssRules和 .rules在我简单的颜色生成器元素中不起作用。 我有一个 元素链接我的外部 CSS 文件: 还有一个 在 之前链接我的外部 JS 文件的元素元素: 然
我一直在玩 document.styleSheets API,它主要做我想做的,但是一旦我添加了一堆规则,我希望能够将 shylesheet 对象解析为有效的 css(这样我就可以将它放入一个可下载的
我想通过JavaScript更好的控制CSS变量,需要对CSSRule对象进行操作。 这是获取它的 2 种方法的 JavaScript 代码: // get from the CSSStyleShee
CSSStyleSheet 将区域设置应用于其值是 macOS High Sierra 上 Chrome 版本 65.0.3325.146 中的错误吗?以下 html 重现了错误。它针对俄语系统区域设
我已经阅读了有关使用 Javascript 插入 css 规则的内容,并设法使其正常工作(经过一些试验和错误)。所以我有两个问题: Q.1 为什么索引 的克隆部分文档 有 3 styleSheets
是否可以从 HTMLStyleElement ( document.styleSheets[0] ) 中获取 CSSStyleSheet 对象 ( document.createElement('st
我在使用此代码的 Internet Explorer 11 中遇到“IndexSizeError”错误: var style = document.createElement('style'); do
我尝试使用基于 https://www.w3.org/wiki/Dynamic_style_-_manipulating_CSS_with_JavaScript 的 typescript 插入一个 c
一个对应一个CSSStyleSheet对象(在document.styleSheets中),但是怎么找,比如CSSStyleSheet对象对应... console.log(document.styl
在 Code.org 的 App Lab 编辑器中,我们最近开始在 Chrome 64 中看到这个错误: Uncaught DOMException: Failed to read the 'rule
我正在将 Selenium 与 Java 和 Chrome/Firefox 驱动程序一起使用。 FirefoxProfile profile = new FirefoxProfile(); profi
我的代码中出现一个错误,该错误似乎只发生在 Android 版 Chrome 67+ 上。我在使用 Chrome 的任何其他平台上都没有遇到这个问题。这种情况偶尔会发生。 错误信息:SecurityE
啊!我的网站在 Chrome 中损坏了。 在控制台中获取此消息:Uncaught DOMException: Failed to execute 'insertRule' on 'CSSStyleSh
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关于您编写的代码问题的问题必须在问题本身中描述具体问题 — 并且包括有效代码 以重现它。参见 SSC
我是一名优秀的程序员,十分优秀!