Maison  >  Article  >  interface Web  >  Pourquoi « Element.style » renvoie-t-il des valeurs différentes pour les styles de feuille de style en ligne et principale ?

Pourquoi « Element.style » renvoie-t-il des valeurs différentes pour les styles de feuille de style en ligne et principale ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-10 21:28:02818parcourir

Why Does `Element.style` Return Different Values for Inline and Master Stylesheet Styles?

Différence de récupération du style d'affichage dans les feuilles de style principales

Lors de l'accès au style d'un élément via la propriété Element.style de JavaScript, il est important de noter les différences potentielles dans comportement basé sur la façon dont le style est déclaré.

Dans le scénario décrit, un style initial display:none a été défini en ligne sur un élément DIV. Cependant, l'élément était ensuite masqué lorsque le style initial était déplacé vers une feuille de style principale. Fait intéressant, l'accès à la propriété style.display de l'élément a renvoyé une chaîne vide, tandis que la même propriété accessible via un style en ligne a renvoyé "aucun".

Ce comportement est attribué à la distinction entre style déclaré et style calculé. Les styles déclarés sont ceux explicitement attribués à un élément, soit en ligne, soit via une feuille de style. Les styles calculés, quant à eux, représentent le style rendu final d'un élément, en tenant compte de tous les facteurs pertinents, y compris les styles hérités et en cascade.

Lorsque vous accédez à Element.style, vous obtenez uniquement le style déclaré. Pour obtenir le style calculé, qui reflète le style réel appliqué à l'élément, vous devez utiliser la méthode window.getComputedStyle(). Cette méthode fournit une représentation complète du style de l'élément, y compris les propriétés affectées par l'héritage, la cascade et les valeurs par défaut du navigateur.

En utilisant getComputedStyle(), vous pouvez récupérer de manière fiable le style d'affichage d'un élément, même s'il est initialement masqué via une feuille de style principale :

const element = document.getElementById('myDiv');
const display = getComputedStyle(element).getPropertyValue('display');
// display will now return 'none' or 'block', as appropriate

Cette approche corrigée garantit que vous accédez au style calculé précis de l'élément, quel que soit son style. déclaré.

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