ホームページ >ウェブフロントエンド >CSSチュートリアル >JavaScript で要素の正確な CSS プロパティ値 (単位を含む) を取得するにはどうすればよいですか?

JavaScript で要素の正確な CSS プロパティ値 (単位を含む) を取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-11 09:10:20497ブラウズ

How Can I Get the Exact CSS Property Value (Including Units) of an Element in JavaScript?

Get Element CSS Property Value as Set (Percent/Em/Px)

で指定された要素の CSS プロパティ値を取得します。スタイル ルールは、特にプロパティがさまざまな単位で設定されている場合に困難になることがあります。 Google Chrome では、getComputedStyle() メソッドと jQuery の css() メソッドはどちらも現在の値をピクセル単位で返します。

解決策: getMatchedStyle Function

この問題に対処するには、次のようにします。 getMatchedStyle() という JavaScript 関数が開発されました。要素とプロパティを引数として受け取り、CSS ルールで設定されたとおりの値を返します。

function getMatchedStyle(elem, property) {
  // Check element's own style first
  var val = elem.style.getPropertyValue(property);
  if (elem.style.getPropertyPriority(property)) return val;

  // Get matched CSS rules
  var rules = getMatchedCSSRules(elem);

  // Iterate rules in reverse order of priority
  for (var i = rules.length; i--;) {
    var r = rules[i];
    var important = r.style.getPropertyPriority(property);

    // Reset value if important or not yet set
    if (val == null || important) {
      val = r.style.getPropertyValue(property);
      if (important) break;
    }
  }

  return val;
}

次の HTML コードを考えてみましょう。 CSS ルール:

<div class="b">div 1</div>
<div>

次の JavaScript コードでは、getMatchedStyle() を使用して、 div:

var d = document.querySelectorAll('div');

for (var i = 0; i < d.length; ++i) {
  console.log("div " + (i + 1) + ":  " + getMatchedStyle(d[i], 'width'));
}

結果:

div 1:  100px
div 2:  50%
div 3:  auto
div 4:  44em

以上がJavaScript で要素の正確な CSS プロパティ値 (単位を含む) を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。