gpt4 book ai didi

javascript - 列出 CSS 自定义属性(CSS 变量)

转载 作者:太空狗 更新时间:2023-10-29 15:34:10 24 4
gpt4 key购买 nike

我在样式表中设置了一些 CSS 自定义属性:

:root {
--bc: #fff;
--bc-primary: #eee;
--bc-secondary: #ddd;
}

如果我已经知道 CSS 变量的名称,我可以单独检索它们:

console.log(getComputedStyle(document.body).getPropertyValue('--bc'));

// #fff

但是如果我想提取一个 CSS 变量列表及其值,该怎么做呢?

最佳答案

更新:

  • 为了捕获 CORS 错误,我将 !styleSheet.href && 添加到第一个 if 语句。

一种可能的解决方案是解析document.styleSheets,然后将规则拆分为属性/值

var allCSS = [].slice.call(document.styleSheets)
.reduce(function(prev, styleSheet) {
if (!styleSheet.href && styleSheet.cssRules) {
return prev + [].slice.call(styleSheet.cssRules)
.reduce(function(prev, cssRule) {
if (cssRule.selectorText == ':root') {
var css = cssRule.cssText.split('{');
css = css[1].replace('}','').split(';');
for (var i = 0; i < css.length; i++) {
var prop = css[i].split(':');
if (prop.length == 2 && prop[0].indexOf('--') == 1) {
console.log('Property name: ', prop[0]);
console.log('Property value:', prop[1]);
}
}
}
}, '');
}
}, '');
:root {
--bc: #fff;
--bc-primary: #eee;
--bc-secondary: #ddd;
}

关于javascript - 列出 CSS 自定义属性(CSS 变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45763121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com