Maison >interface Web >tutoriel CSS >Comment puis-je accéder avec précision à la propriété « display » des éléments DOM ?

Comment puis-je accéder avec précision à la propriété « display » des éléments DOM ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-26 03:44:09652parcourir

How Can I Accurately Access the `display` Property of DOM Elements?

Accéder avec précision à la propriété d'affichage des éléments DOM

Récupérer la propriété d'affichage des éléments DOM peut sembler simple, mais des résultats inattendus peuvent survenir. Prenons l'exemple suivant :

var a = (document.getElementById('a')).style;
alert(a.display);

Cette alerte peut afficher une chaîne vide au lieu de la valeur « aucun » attendue. Pourquoi cela se produit-il ?

Le problème réside dans la différence entre la valeur de l'attribut CSS et le style appliqué.

Valeur de l'attribut CSS par rapport au style appliqué

Les propriétés .style.*, y compris .display, correspondent à la valeur de l'attribut CSS, et non au style appliqué. Le style appliqué reflète le résultat de la cascade CSS et peut différer de la valeur de l'attribut.

Dans l'exemple donné, la propriété d'affichage de l'élément « a » est définie sur « aucun » dans le style de l'attribut CSS :

a {
  display: none;
}

Cependant, le style appliqué peut être différent en raison de feuilles de style externes ou de modifications dynamiques.

Utilisation getComputedStyle

Pour récupérer correctement le style appliqué, utilisez la méthode getComputedStyle(). Il prend un élément comme argument et renvoie un objet CSSStyleDeclaration contenant les styles CSS calculés.

var a = (document.getElementById('a'));
alert(getComputedStyle(a).display);  // Displays "none" as expected

Approche alternative : bascules de classe

Comme alternative, envisagez d'utiliser Classes CSS pour basculer la visibilité des éléments. Cette approche sépare la présentation de la logique et évite d'avoir à manipuler directement les attributs CSS.

.hidden {
  display: none;
}
var p = document.getElementById('p');
p.classList.toggle('hidden'); // Toggles the display property

En utilisant getComputedStyle ou les bascules de classe, vous pouvez accéder et contrôler avec précision la propriété d'affichage des éléments DOM.

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