Window.getDefaultComputedStyle()

Non standard
Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

getDefaultComputedStyle() fournit les valeurs calculées par défaut de toutes les propriétés CSS d'un élément, en ignorant la mise en forme de l'auteur. C'est-à-dire que seules les mises en forme de l'agent utilisateur et de l'utilisateur sont pris en compte.

Syntaxe

var miseEnForme = window.getDefaultComputedStyle(element[, pseudoElt]);
element
L'Element dont on veut obtenir la mise en forme calculée.
pseudoElt Facultatif
Une chaîne indiquant le pseudo-élément à rechercher. Doit être null (ou non indiqué) pour les éléments ordinaires.

Le style retourné est un objet CSSStyleDeclaration.

Exemples

var elem1 = document.getElementById("IdElem");
var miseEnForme = window.getDefaultComputedStyle(elem1);
<style>
#conteneur-elem {
   position: absolute;
   left:     100px;
   top:      200px;
   height:   100px;
 }
</style>

<div id="conteneur-elem">factice</div>
<div id="sortie"></div>  

<script>
    var elem = document.getElementById("conteneur-elem");
    var laPropCSS = window.getDefaultComputedStyle(elem).position;
    document.getElementById("sortie").innerHTML = laPropCSS; // affichera "static"
</script>   

Description

L'objet retourné est du même type que l'objet retourné par getComputedStyle, mais il ne prend en compte que les règles user-agent et user.

Utilisation avec des pseudo-éléments

getDefaultComputedStyle peut extraire des informations de mise en forme à partir de pseudo-éléments (par exemple, ::after, ::before).

<style>
 h3:after {
   content: ' déchire !';
 }
</style>

<h3>contenu généré</h3> 

<script>
  var h3       = document.querySelector('h3'), 
      resultat = getDefaultComputedStyle(h3, ':after').content;

  console.log('le contenu généré est : ', resultat); // retourne 'none'
</script>

Notes

La valeur retournée est, dans certains cas connus, expressément incorrecte par intention délibérée. En particulier, pour éviter le problème de sécurité appelé CSS History Leak, les navigateurs peuvent "mentir" sur la valeur utilisée pour un lien et toujours retourner des valeurs comme si l'utilisateur n'avait jamais visité le site concerné, et/ou limiter les styles qui peuvent être appliqués via l'utilisation du pseudo-sélecteur :visited. Voir http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/ et http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-visited/ pour le détail des exemples de la manière dont cela est implémenté.

Spécifications

Proposé au groupe de travail CSS.

Compatibilité des navigateurs

Nous convertissons les données de compatibilité dans un format JSON. Ce tableau de compatibilité utilise encore l'ancien format car nous n'avons pas encore converti les données qu'il contient. Vous pouvez nous aider en contribuant !

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support Pas de support 19 Pas de support Pas de support Pas de support
pseudo-element support Pas de support 19 Pas de support Pas de support Pas de support
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support Pas de support 19 7.5 Pas de support Pas de support
pseudo-element support Pas de support 19 Pas de support Pas de support Pas de support

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : teoli, NemoNobobyPersonne
Dernière mise à jour par : teoli,