问题描述
如果我们只使用getComputedStyle
方法,你能告诉我为什么我们需要使用getPropertyValue
方法吗?
例如,据我所知,这将起作用:
var s = getComputedStyle(element, null).opacity;
这相当于以下内容:
var s = getComputedStyle(element, null).getPropertyValue('opacity');
我们可以getComputedStyle
没有getPropertyValue
情况下使用getComputedStyle
吗?
1楼
根据旧的 ,不需要getPropertyValue
:
CSS2Properties
接口表示用于在检索和设置属性的便捷机制。 此接口的属性对应所有 。 获取此接口的属性等同于调用接口的getPropertyValue
方法。 设置此接口的属性等同于调用接口的setProperty
方法。
但是,实现不需要支持它,因此使用getPropertyValue
更安全。
实现
CSS2Properties
接口不需要符合CSS模块的实现。
但根据较新的 ,使用没有getPropertyValue
camel-case必须工作:
对于是每个CSS属性属性 ,以下的局部界面适用其中骆驼外装属性是通过运行所获得的算法属性 。
partial interface CSSStyleDeclaration { attribute DOMString _camel-cased attribute; };
获取时,
camel-cased attribute
属性必须返回调用的结果,其中参数是运行为camel-cased属性的 算法的结果。设置属性必须调用 ,第一个参数是运行为camel-cased属性的 算法的结果,第二个参数是给定值,没有第三个参数。 必须重新抛出任何抛出的异常。
因此,不再需要getPropertyValue
来检索CSS值。
2楼
我相信这是属于不能用点标记的属性,比如background-position
。
虽然我想提出问题“为什么不使用括号表示法,即getComputedStyle(element, null)['background-position']
?”。
他们可能只想要一个类的getter方法(CSSStyleDeclaration)。