javascript - 如何有效地将 css 值导入 javascript 文件?

标签 javascript jquery css less

我有一个 colors.less 文件,可以为网站维护一致的调色板。

我还有一个 chart.js 文件,它需要硬编码颜色才能以适当的颜色显示图表元素。

如何使图表颜色依赖于生成的 colors.css 文件?

到目前为止,我一直在维护两个调色板,一个在 less 中,另一个在 js 中。如何合并两者?

例子:

/* colors.less */
@green:    #46a546;
@red:      #9d261d;
@yellow:   #f1c40f;

/* chart.js */
var chartElements = {
    "apples": {
        label: "Apples",
        color: "#46a546",
    },
    "oranges": {
        label: "Oranges",
        color: "#f1c40f",
    },
    "grapes": {
        label: "Grapes",
        color: "#9d261d",
    }...

如何停止维护两组颜色?

最佳答案

即使 Pointy 的回答在这里可能更合适(谈论 LESS),我想提醒您可以通过 ECMAscript 直接访问样式表数据。您可能能够识别特定规则并获取值。可能看起来像

[].forEach.call(document.styleSheets, function( set ) {
  if( set.href && set.href.indexOf( 'dialog.css' ) > -1 ) {
    [].forEach.call( set.cssRules, function( rule ) {
      if( rule.selectorText === 'div#dialog-container-left' ) {
        // to whatever here, grab the value and store it for global application usage
        console.log( rule.style.backgroundColor );
      }
    });
  }
});

关于javascript - 如何有效地将 css 值导入 javascript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28414459/

相关文章:

html - 自动使两个 block 高度相同

javascript - 主页和注销按钮在页面刷新之前不起作用

javascript - 检查元素是否在视口(viewport)中无法正常工作

javascript - 禁用文档上的制表符但启用输入制表符?

Javascript 页面搜索可搜索所有关键字

css - 如何更新 Foundation 5 的 SASS 样式?

javascript - 使用 jQuery 在单击时复制特定结构

javascript - 获取突出显示/选定的文本

javascript - ng-click 目录中使用三元运算符的多个函数

javascript - Jquery keydown 只能工作一次