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
Libérer: 2024-12-11 09:10:20
original
503 Les gens l'ont consulté

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;
}
Copier après la connexion

Exemple

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

<div class="b">div 1</div>
<div>
Copier après la connexion

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'));
}
Copier après la connexion

Résultats :

div 1:  100px
div 2:  50%
div 3:  auto
div 4:  44em
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal