Maison >interface Web >tutoriel CSS >Comment puis-je obtenir la valeur exacte de la propriété CSS (y compris les unités) d'un élément en JavaScript ?

Comment puis-je obtenir la valeur exacte de la propriété CSS (y compris les unités) d'un élément en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-11 09:10:20566parcourir

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

Obtenir la valeur de la propriété CSS de l'élément telle que définie (Pourcentage/Em/Px)

Obtenir la valeur de la propriété CSS d'un élément comme spécifié dans le les règles de style peuvent être difficiles, surtout lorsque la propriété a été divisée en plusieurs unités. Dans Google Chrome, la méthode getComputedStyle() et la méthode css() de jQuery renvoient toutes deux la valeur actuelle en pixels.

Solution : fonction getMatchedStyle

Pour résoudre ce problème, une fonction JavaScript appelée getMatchedStyle() a été développée. Il prend un élément et une propriété comme arguments et renvoie la valeur telle qu'elle a été définie dans les règles 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;
}

Exemple

Considérez le code HTML suivant avec Règles CSS :

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

Le code JavaScript suivant utilise getMatchedStyle() pour obtenir les valeurs de largeur du divs :

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

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

Résultats :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn