我可以从JavaScript访问无效/自定义CSS属性的值吗?
假设我有以下的CSS:
div { -my-foo: 42; }  我以后可以在JavaScript中以某种方式知道给定的div的-my-foo CSS属性的值是什么? 
我不认为你可以访问无效的属性名称,至less它不适用于我的Chrome或Firefox。 CSSStyleDeclaration只是跳过无效的属性。 对于给定的CSS:
 div { width: 100px; -my-foo: 25px; } 
  style:CSSStyleDeclaration对象只包含以下关键字: 
 0: width cssText: "width: 100px" length: 1 
不过,有趣的是这是DOM-Level-2风格规范所说的:
虽然实现可能无法识别CSS声明块中的所有CSS属性,但希望通过CSSStyleDeclaration接口提供对样式表中所有指定属性的访问。
 这意味着CSSStyleDeclaration对象应该在上面的例子中列出了-my-foo属性。 也许有一些浏览器支持它。 
我用于testing的代码在http://jsfiddle.net/q2nRJ/1/ 。
注意 :您可以通过parsing原始文本来DIY。 例如:
 document.getElementsByTagName("style")[0].innerText 
但是这对我来说似乎是一个很大的工作,不知道你做这件事的原因,我不能说是否存在一个更好的替代你的问题。
CSS自定义属性
DOM 2级风格
 正如Anurag所指出的那样,这是DOM级别2提出的build议,后来被弃用了。  Internet Explorer是唯一实现它的浏览器,并停止在Edge中支持它。  IE预计财产不会以破折号开始,所以my-foo: 42; 应该工作。 
CSSvariables样式
 较新的浏览器支持CSSvariables。 这些从一个双破折号开始:– --my-foo: 42;  (他们可以在其他地方像这个font-size: var(--my-foo); ) 
例
CSS
 div { --my-foo: 42; my-foo: 42; } 
JS
 // Chrome 49, Firefox 31, Safari 9.1 (future Edge): const cssVariable = bodyStyles.getPropertyValue('--my-foo') // IE: const cssCustomProperty = bodyStyles['my-foo'] 
浏览器支持
目前,Microsoft Edge是唯一不支持这两种方法的浏览器,但是在编写Edge中的CSSvariables时, “正在积极开发” 。