element_html/css_WEB-ITnose の CSS 値を取得する getComputedStyle メソッドに精通している

WBOY
リリース: 2016-06-24 11:35:22
オリジナル
1182 人が閲覧しました

1. 再版を続けます

2. getComputedStyle とは何ですか?

getComputedStyle は、現在の要素の最終的に使用された CSS 属性値をすべて取得できるメソッドです。返されるのは、読み取り専用の CSS スタイル宣言オブジェクト ([object CSSStyleDeclaration]) です。 getComputedStyle()は、要素のすべてのCSSプロパティの最終的な使用値を示しています。中国人、言うのは簡単なことではありません。追加のリマインダー: Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) より前では、2 番目のパラメーター「擬似クラス」が必須でした (擬似クラスでない場合は、null に設定します)。しかし、現在は必須です。必須パラメータではありません。

3. getComputedStyle と style の違い

element.style を使用して要素の CSS スタイル宣言オブジェクトを取得することもできますが、getComputedStyle メソッドとはいくつかの違いがあります。

読み取り専用および書き込み可能

前述したように、getComputedStyle メソッドは読み取り専用で、スタイルを取得することのみができますが、設定することはできません。

取得されるオブジェクトのスコープ

getComputedStyle メソッドは、要素に最終的に適用されるすべての CSS 属性オブジェクトを取得します (CSS コードがない場合でも、デフォルトの祖先の 8 世代が表示されます)。 style 属性で要素 CSS スタイルを取得します。したがって、ベア要素

の場合、オブジェクトの getComputedStyle メソッドによって返される長さ属性値 (存在する場合) は 190 以上です (私のテストによると、FF: 192、IE9: 195、Chrome: 253、結果は環境によっては異なる場合があります)、element.style は 0 です。

4. getComputedStyle とdefaultView

    jQuery ソース コードを見ると、その css() メソッドが window.getComputedStyle ではなく document.defaultView.getComputedStyle を使用して実装されていることがわかります。これは同じことですか?
  1. 実際、defaultView を使用する必要は基本的にはなく、getComputedStyle 自体は window オブジェクト内に存在します。 DennisHall 氏によると、defaultView を使用するのは、人々がウィンドウ専用に何かを書きたくないからかもしれません。第 2 に、API が Java でも利用できるからです (これは理解できません、指摘するのを忘れていました~~)。
  2. ただし、FireFox3.6 では、defaultView メソッドを使用しないと解決できない特殊なケースがあり、これはフレーム スタイルにアクセスします
  3. 5. getComputedStyle の互換性
    デスクトップ デバイスの場合:


Chrome

Firefox (Gecko)

Internet Explorer

Opera

Safari

9 疑似クラス要素のサポート モバイルデバイスの場合: Android Firefox Mobile (Gecko) IE Mobile Opera Mobile
基本サポート
Safari Mobile

基本サポート WP7 Mango ?

上面打问号的表示没有测试,是否兼容不知。如果您方便测试,欢迎将测试结果告知,这里将及时更新,并附上您的姓名,以谢您做的贡献。

我们先把注意力放在桌面设备上,可以看到,getComputedStyle方法IE6~8是不支持的,得,背了半天的媳妇,发现是孙悟空变的??郁闷了。不急,IE自有自己的一套东西。

六、getComputedStyle与currentStyle

currentStyle是IE浏览器自娱自乐的一个属性,其与element.style可以说是近亲,至少在使用形式上类似,element.currentStyle,差别在于element.currentStyle返回的是元素当前应用的最终CSS属性值(包括外链CSS文件,页面中嵌入的

?