检索 CSS 是否需要'getPropertyValue'方法?



你能告诉我,如果我们只使用getComputedStyle方法,为什么我们需要使用getPropertyValue方法?

例如,这将工作,据我所知:

var s = getComputedStyle(element, null).opacity;

等价于以下内容:

var s = getComputedStyle(element, null).getPropertyValue('opacity');

可以用getComputedStyle代替getPropertyValue吗?

根据旧的DOM L2 Style,不需要getPropertyValue:

CSS2Properties接口代表了一种便利的机制检索和设置CSSStyleDeclaration中的属性。该接口的属性对应所有属性在CSS2中指定。获取该接口的属性为方法的getPropertyValue方法等效CSSStyleDeclaration接口。设置此属性方法的setProperty方法等效于CSSStyleDeclaration接口。

但是,实现不需要支持它,所以使用getPropertyValue更安全。

不需要CSS模块的一致性实现实现CSS2Properties接口

但是根据较新的CSSOM,使用没有getPropertyValue的骆驼大小写必须工作:

对于每个支持的CSS属性属性以下部分接口适用于驼色大小写属性通过运行CSS属性到IDL属性算法得到

partial interface CSSStyleDeclaration {
    attribute DOMString _camel-cased attribute;
};

camel-cased attribute 属性在获取时必须返回调用getPropertyValue()的结果,参数为运行IDL属性到CSS属性算法的结果<<em>"骆峰式"属性/em>。

设置 camel-cased attribute 属性必须调用setProperty(),第一个参数是运行IDL属性到CSS属性的算法骆驼大小写属性,作为给定值的第二个参数,没有第三个参数。任何抛出的异常都必须重新抛出。

因此,不再需要getPropertyValue来检索CSS值

我认为这是对于不能点标记的属性,如background-position。虽然我认为这带来了一个问题"为什么不使用括号符号,即getComputedStyle(element, null)['background-position'] ?"。他们可能只是想要一个getter方法(CSSStyleDeclaration)。

相关内容

  • 没有找到相关文章

最新更新