Maison > interface Web > tutoriel CSS > Comment récupérer les valeurs de style des éléments HTML à l'aide de JavaScript pur ?

Comment récupérer les valeurs de style des éléments HTML à l'aide de JavaScript pur ?

Linda Hamilton
Libérer: 2024-12-20 22:32:12
original
1007 Les gens l'ont consulté

How to Retrieve Style Values from HTML Elements using Pure JavaScript?

Récupération des valeurs de style d'un élément HTML à l'aide de JavaScript

L'obtention des attributs de style d'un élément HTML est essentielle pour manipuler son apparence de manière dynamique. Cet article explore les nuances de la récupération des valeurs de style à l'aide de JavaScript pur, sans l'aide d'aucune bibliothèque externe.

Style actuel et propriétés calculées

Pour accéder aux valeurs de style, nous devons faire la différence entre les styles en ligne (définis dans l'attribut style de l'élément) et les propriétés calculées (les styles réellement appliqués).

Internet Explorer utilise element.currentStyle propriété pour récupérer les styles en ligne, qui contiennent les valeurs dans leurs unités d'origine.

Mozilla et d'autres navigateurs modernes s'appuient sur la méthode document.defaultView.getComputedStyle pour fournir les propriétés calculées. Ces valeurs sont normalisées en pixels, fournissant une représentation cohérente entre les navigateurs.

Solution multi-navigateurs

La fonction suivante offre une solution multi-navigateurs pour récupérer à la fois en ligne et styles calculés :

function getStyle(el, styleProp) {
  var value, defaultView = (el.ownerDocument || document).defaultView;
  // Convert styleProp to compatible notation
  styleProp = styleProp.replace(/([A-Z])/g, "-").toLowerCase();
  // Modern browsers: computed properties
  if (defaultView && defaultView.getComputedStyle) {
    return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
  } else if (el.currentStyle) { // IE: inline properties
    // Convert styleProp to camelCase notation
    styleProp = styleProp.replace(/\-(\w)/g, function(str, letter) {
      return letter.toUpperCase();
    });
    value = el.currentStyle[styleProp];
    // Normalize units on IE
    if (/^\d+(em|pt|%|ex)?$/i.test(value)) {
      return (function(value) {
        var oldLeft = el.style.left, oldRsLeft = el.runtimeStyle.left;
        el.runtimeStyle.left = el.currentStyle.left;
        el.style.left = value || 0;
        value = el.style.pixelLeft + "px";
        el.style.left = oldLeft;
        el.runtimeStyle.left = oldRsLeft;
        return value;
      })(value);
    }
    return value;
  }
}
Copier après la connexion

Exemple

Pour récupérer la propriété de largeur en ligne d'un élément avec l'identifiant "box" (défini via une balise de style) :

alert (getStyle(document.getElementById("box"), "width"));
Copier après la connexion
Copier après la connexion

Pour récupérer la propriété de largeur calculée, qui prend en compte les styles en cascade ou hérités :

alert (getStyle(document.getElementById("box"), "width"));
Copier après la connexion
Copier après la connexion

Limitations

Cette fonction ne gère pas parfaitement les valeurs de couleur. Les navigateurs modernes renverront les couleurs dans la notation RVB, tandis qu'IE conservera leur définition originale.

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