是否可以使用javascript自定义CSS属性?

时间:2012-02-04 18:52:20

标签: javascript html css

我想知道是否可以访问放置在样式表中的自定义规则。例如,采取:

p {
  line-height: 2em;
  -js-min-line-height: 1.4em;
}

我已经尝试遍历样式表对象并抓取CSS文本,但浏览器可能不会返回它无法识别的属性文本:

for styleSheet in document.styleSheets
  for rule in styleSheet.cssRules
    console.log rule.cssText

简单地返回:

p { line-height: 1.4; }

1 个答案:

答案 0 :(得分:1)

这取决于CSS的派生方式。它取决于它是否是链接,组合或硬编码。如果它是硬编码的,那么只需在样式元素上放置一个id,然后使用document.getElementById("styleId").innerHTML获取文本,然后通过将字符串拆分为半冒号来解析它。如果它是由javascript组成的,那么在那里添加一些额外的内容以保留样式应该很容易。如果它是链接的,我认为这是最有可能和最难处理的情况,那么我建议使用$.AJAX()将css加载到javascript中,读取文本并解析它以获得所需内容,然后使用{ {1}}将样式添加到您的页面。