7

1つしか使えないのに、なぜそのgetPropertyValue方法を使う必要があるのか​​教えていただけますgetComputedStyleか?

たとえば、私が理解している限り、これは機能します。

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

これは次と同等です。

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

getComputedStyleなしで使えますgetPropertyValueか?

4

2 に答える 2

7

古いDOM L2 Styleによれば、必須でgetPropertyValueはありませんでした:

CSS2Propertiesインターフェイスは、 内のプロパティを取得および設定するための便利なメカニズムを表しますCSSStyleDeclaration。このインターフェイスの属性は、CSS2 で指定されたすべてのプロパティに対応しています。このインターフェイスの属性を取得することは、 CSSStyleDeclarationインターフェイスのgetPropertyValueメソッド を呼び出すことと同じです。このインターフェイスの属性を設定することは、インターフェイスのメソッド を呼び出すことと同じです。setPropertyCSSStyleDeclaration

ただし、実装はそれをサポートする必要がなかったため、使用する方getPropertyValueが安全でした。

CSS2Propertiesインターフェイスを実装するために、CSS モジュールの準拠した実装は必要ありません。

しかし、新しいCSSOMによれば、camel-case を使用せずにgetPropertyValue動作する必要があります。

サポートされている CSS propertyである各 CSS プロパティpropertyに対して、次の部分的なインターフェイスが適用されます。ここでは、 CSS property to IDL attributeアルゴリズムを propertyに対して実行することによってキャメル ケースの属性が取得されます。

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

この属性は、取得時に、 IDL 属性を実行した結果である引数を使用してcamel-cased attribute呼び出した結果を返す必要があります。キャメルケース属性のCSS プロパティアルゴリズム 。getPropertyValue()

属性の設定は、 IDL 属性をキャメル ケース属性のCSS プロパティアルゴリズム に実行した結果である最初の引数を指定してcamel-cased attribute呼び出す必要があり ます。スローされた例外は再スローする必要があります。setProperty()

したがって、getPropertyValueCSS 値を取得する必要はなくなりました。

于 2015-07-19T22:36:30.690 に答える