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

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

Mary-Kate Olsen
リリース: 2024-12-11 09:10:20
オリジナル
498 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート