1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
---
title: Window.getDefaultComputedStyle()
slug: Web/API/Window/getDefaultComputedStyle
tags:
- API
- CSS
- Method
- Reference
translation_of: Web/API/window/getDefaultComputedStyle
---
<div>{{APIRef("CSSOM")}}{{Non-standard_header}}</div>
<p><code>getDefaultComputedStyle()</code> 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.</p>
<h2 id="Syntaxe">Syntaxe</h2>
<pre class="syntaxbox">var <em>miseEnForme</em> = window.getDefaultComputedStyle(<em>element</em>[, <em>pseudoElt</em>]);
</pre>
<dl>
<dt>element</dt>
<dd>L'{{domxref("Element")}} dont on veut obtenir la mise en forme calculée.</dd>
<dt>pseudoElt {{optional_inline}}</dt>
<dd>Une chaîne indiquant le pseudo-élément à rechercher. Doit être <code>null</code> (ou non indiqué) pour les éléments ordinaires.</dd>
</dl>
<p>Le <code>style</code> retourné est un objet <a href="/fr-FR/docs/Web/API/CSSStyleDeclaration"><code>CSSStyleDeclaration</code></a>.</p>
<h2 id="Exemples">Exemples</h2>
<pre class="brush: js">var elem1 = document.getElementById("IdElem");
var miseEnForme = window.getDefaultComputedStyle(elem1);
</pre>
<pre class="brush: js"><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> </pre>
<h2 id="Description">Description</h2>
<p>L'objet retourné est du même type que l'objet retourné par <code>getComputedStyle</code>, mais il ne prend en compte que les règles user-agent et user.</p>
<h2 id="Utilisation_avec_des_pseudo-éléments">Utilisation avec des pseudo-éléments</h2>
<p><code>getDefaultComputedStyle</code> peut extraire des informations de mise en forme à partir de pseudo-éléments (par exemple, ::after, ::before).</p>
<pre class="brush: html"><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>
</pre>
<h2 id="Notes">Notes</h2>
<p>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 <code>:visited</code>. Voir <a href="http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/">http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/</a> et <a href="http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/">http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-visited/</a> pour le détail des exemples de la manière dont cela est implémenté.</p>
<h2 id="Spécifications">Spécifications</h2>
<p>Proposé au groupe de travail CSS.</p>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p>{{CompatibilityTable}}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatNo}}</td>
<td>19</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
<tr>
<td>pseudo-element support</td>
<td>{{CompatNo}}</td>
<td>19</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Basic support</td>
<td>{{CompatNo}}</td>
<td>19</td>
<td>7.5</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
<tr>
<td>pseudo-element support</td>
<td>{{CompatNo}}</td>
<td>19</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
<td>{{CompatNo}}</td>
</tr>
</tbody>
</table>
</div>
|