aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/css/revert/index.html
blob: 2ddf16c7758ea8344387b04bd5d277aca302535f (plain)
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
---
title: revert
slug: Web/CSS/revert
tags:
  - CSS
  - Cascade
  - Mot-clé
  - Reference
translation_of: Web/CSS/revert
---
<div>{{CSSRef}}</div>

<p>Le mot-clé <strong><code>revert</code></strong> permet de <em>remonter</em> la cascade afin que la propriété puisse prendre la valeur qui aurait été utilisée sans mise en forme particulière (la valeur qu'elle aurait eu sans mise en forme appliquée par la feuille de style de l'auteur, de l'utilisateur ou de l'agent utilisateur). Ainsi, si la propriété hérite de son parent, elle prendra la valeur héritée et sinon la valeur par défaut de l'agent utilisateur (ou de la feuille de style utilisateur).</p>

<p>Cette valeur peut être utilisée pour n'importe quelle propriété CSS, y compris la propriété raccourcie {{cssxref("all")}}.</p>

<p>La remontée de la cascade sera plus ou moins prononcée selon l'endroit où est utilisé <code>revert</code> :</p>

<ul>
 <li>Si <code>revert</code> est utilisé dans une feuille de style d'un site, ce sera la valeur définie dans la feuille de style de l'utilisateur qui sera utilisée ou celle de l'agent utilisateur par défaut sinon.</li>
 <li>Si <code>revert</code> est utilisé dans une feuille de style utilisateur ou si le style a été appliqué par l'utilisateur, <code>revert</code> entraînera l'utilisation de la valeur par défaut de l'agent utilisateur.</li>
 <li>Si <code>revert</code> est utilisé comme style par défaut de l'agent utilisateur, il aura un comportement équivalent à {{cssxref("unset")}}</li>
</ul>

<p>Le mot-clé <code>revert</code> fonctionne comme <code>unset</code> pour de nombreux cas. Les seules différences observables se produisent quand les valeurs sont définies par le navigateur ou dans une feuille de style utilisateur.</p>

<p><code>revert</code> n'aura pas d'effet sur les éléments fils de l'élément ciblé (mais supprimera l'effet d'une règle du parent qui s'appliquerait indirectement aux enfants).</p>

<div class="blockIndicator note">
<p><strong>Note :</strong> <code>revert</code> est une simple valeur, il est toujours possible de la surcharger par une autre avec une règle d'une <a href="/fr/docs/Apprendre/CSS/Introduction_à_CSS/La_cascade_et_l_héritage#Spécificité">spécificité</a> supérieure.</p>
</div>

<div class="blockIndicator note">
<p><strong>Note :</strong> Le mot-clé <code>revert</code> est différent de {{cssxref("initial")}} et ne doit pas être confondu avec ce dernier. {{cssxref("initial")}} utilise <a href="/fr/docs/Web/CSS/Valeur_initiale">la valeur initiale</a>, définie pour chaque propriété par les spécifications CSS. En revanche, les feuilles de style des agents utilisateurs définissent des valeurs par défaut selon les sélecteurs CSS. Par exemple, <a href="/fr/docs/Web/CSS/Valeur_initiale">la valeur initiale</a> de {{cssxref("display")}} est <code>inline</code> mais un agent utilisateur pourra définir les valeurs par défaut suivante dans sa feuille de style : <code>block</code> pour {{HTMLElement("div")}}, <code>table</code> pour {{HTMLElement("table")}} etc.</p>
</div>

<h2 id="Exemples">Exemples</h2>

<h3 id="Exemple_simple">Exemple simple</h3>

<h4 id="HTML">HTML</h4>

<pre class="brush: html">&lt;section&gt;
  &lt;p&gt;Voici une section !&lt;/p&gt;

  &lt;aside class="widget"&gt;
    &lt;p&gt;Et un petit widget.&lt;/p&gt;
  &lt;/aside&gt;
&lt;/section&gt;
</pre>

<h4 id="CSS">CSS</h4>

<pre class="brush: css">section p {
  color: blue;
  font-family: sans-serif;
  font-weight: bold;
}

.widget p {
  all: revert;
}</pre>

<h4 id="Résultat">Résultat</h4>

<p>{{EmbedLiveSample('Exemple_simple')}}</p>

<h3 id="revert_et_unset"><code>revert</code> et <code>unset</code></h3>

<p>Bien que <code>revert</code> et <code>unset</code> soient semblables, il y a quelques différences pour certaines propriétés de certains éléments.</p>

<p>Dans l'exemple qui suit, on indique une valeur spécifique pour <code>font-weight</code> au niveau de la feuille de style globale sur laquelle on revient avec <code>unset</code> et <code>revert</code>. <code>unset</code> conservera un texte normal car c'est la valeur initiale pour <code>font-weight</code> tandis que <code>revert</code> rendra le texte en gras car c'est la valeur par défaut pour les titres pour la plupart des navigateurs.</p>

<h4 id="CSS_2">CSS</h4>

<pre class="brush: css">h3 {
  font-weight: normal;
  color: blue;
}</pre>

<h4 id="HTML_2">HTML</h4>

<pre class="brush: html">&lt;h3 style="font-weight: unset; color: unset;"&gt;
  Ceci aura toujours font-weight: normal mais color: black
&lt;/h3&gt;
&lt;p&gt;
  Juste un peu de texte
&lt;/p&gt;
&lt;h3 style="font-weight: revert; color: revert;"&gt;
  Ceci devrait avoir font-weight: bold (la valeur originale)
  et color: black
&lt;/h3&gt;
&lt;p&gt;
 Juste un peu de texte
&lt;/p&gt;</pre>

<h4 id="Résultat_2">Résultat</h4>

<p>{{EmbedLiveSample('revert_et_unset')}}</p>

<h3 id="all"><code>all</code></h3>

<p>Revenir sur toutes les valeurs peut s'avérer utile lorsqu'on veut annuler l'effet de modifications lourdes. Si on poursuit avec l'exemple précédent, plutôt que de revenir séparément sur <code>font-weight</code> et <code>color</code>, on utilise <code>all</code> à la place.</p>

<h4 id="CSS_3">CSS</h4>

<pre class="brush: css">h3 {
  font-weight: normal;
  color: blue;
  border-bottom: 1px solid grey;
}</pre>

<h4 id="HTML_3">HTML</h4>

<pre class="brush: html">&lt;h3&gt;
  Un style spécifique
&lt;/h3&gt;
&lt;p&gt;
  Juste un peu de texte
&lt;/p&gt;
&lt;h3 style="all: revert"&gt;
  Retour aux réglages par défaut pour toutes les propriétés
&lt;/h3&gt;
&lt;p&gt;
  Juste un peu de texte
&lt;/p&gt;</pre>

<h4 id="Résultat_3">Résultat</h4>

<p>{{EmbedLiveSample('all')}}</p>

<h3 id="Revenir_sur_une_propriété_du_parent">Revenir sur une propriété du parent</h3>

<p>Utiliser <code>revert</code> annule la valeur d'une propriété pour le seul élément ciblé. Pour illustrer ce principe, nous utiliserons une couleur verte pour une section et rouge pour un paragraphe.</p>

<h4 id="CSS_4">CSS</h4>

<pre class="brush: css">section {
  color: darkgreen;
}
p {
  color: red;
}
section.with-revert {
  color: revert;
}
</pre>

<h4 id="HTML_4">HTML</h4>

<pre class="brush: html">&lt;section&gt;
  &lt;h3&gt;Ce texte sera vert foncé&lt;/h3&gt;
  &lt;p&gt;Ce texte sera rouge.&lt;/p&gt;
  Ce texte sera aussi vert.
&lt;/section&gt;
&lt;section class="with-revert"&gt;
  &lt;h3&gt;Ce texte sera noir&lt;/h3&gt;
  &lt;p&gt;Ce texte sera rouge.&lt;/p&gt;
  Ce texte sera aussi noir.
&lt;/section&gt;</pre>

<p>On voit ici que le paragraphe reste en rouge malgré l'utilisation de <code>revert</code> pour la section. On voit également que le titre et le nœud texte de la deuxième section sont en noir : comme si <code>section { color: darkgreen }</code> n'existait pas pour cette section.</p>

<h4 id="Résultat_4">Résultat</h4>

<p>{{EmbedLiveSample('Revenir_sur_une_propriété_du_parent')}}</p>

<h2 id="Spécifications">Spécifications</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Spécification</th>
   <th scope="col">Statut</th>
   <th scope="col">Commentaires</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('CSS4 Cascade', '#default', 'revert')}}</td>
   <td>{{Spec2('CSS4 Cascade')}}</td>
   <td>Définition initiale.</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>

<div class="hidden">Ce tableau de compatibilité a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>

<p>{{Compat("css.types.global_keywords.revert")}}</p>

<h2 id="Voir_aussi">Voir aussi</h2>

<ul>
 <li>{{cssxref("initial")}}</li>
 <li>{{cssxref("inherit")}}</li>
 <li>{{cssxref("unset")}}</li>
 <li>La propriété {{cssxref("all")}} permet de réinitialiser l'ensemble des propriétés avec leurs valeurs initiales, héritées, annulées ou par défaut.</li>
</ul>