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
201
202
203
204
205
206
207
208
209
210
211
212
213
|
---
title: width
slug: Web/CSS/width
tags:
- CSS
- Propriété
- Reference
translation_of: Web/CSS/width
---
<div>{{CSSRef}}</div>
<p>La propriété <strong><code>width</code></strong> permet de définir la largeur de la <a href="/fr/Apprendre/CSS/Les_bases/Le_modèle_de_boîte">boîte du contenu</a> d'un élément. Par défaut, sa valeur est <strong><code>auto</code></strong>, c'est à dire la largeur automatiquement calculée de son contenu. Si {{cssxref("box-sizing")}} vaut <code>border-box</code>, la valeur appliquée incluera les dimensions de la boîte d'encadrement (<em>border</em>) et de la boîte de remplissage (<em>padding</em>).</p>
<div>{{EmbedInteractiveExample("pages/css/width.html")}}</div>
<p class="hidden">Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> et à envoyer une <em>pull request</em> !</p>
<div class="note">
<p><strong>Note :</strong> Les propriétés {{cssxref("min-width")}} et {{cssxref("max-width")}} permettent de surcharger {{cssxref("width")}}.</p>
</div>
<h2 id="Syntaxe">Syntaxe</h2>
<pre class="brush:css">/* Valeurs de longueur */
/* Type <length> */
width: 300px;
width: 25em;
/* Valeurs en pourcentages */
/* Type <percentage> */
width: 75%;
/* Avec un mot-clé */
width: 25em border-box;
width: 75% content-box;
width: max-content;
width: min-content;
width: available;
width: fit-content;
width: auto;
/* Valeurs globales */
width: inherit;
width: initial;
width: unset;
</pre>
<p>La propriété <code>width</code> se définit avec</p>
<ul>
<li>un des mots-clés suivants : <code><a href="#available">available</a></code>, <code><a href="#min-content">min-content</a></code>, <code><a href="#max-content">max-content</a></code>, <code><a href="#fit-content">fit-content</a></code>, <code><a href="#auto">auto</a></code>.</li>
<li>ou une valeur de longeur (<code><a href="#length"><length></a></code>) ou de pourcentage (<code><a href="#percentage"><percentage></a></code>) éventuellement suivie par le mots-clé <code><a href="#border-box">border-box</a></code> ou <code><a href="#content-box">content-box</a></code>.</li>
</ul>
<h3 id="Valeurs">Valeurs</h3>
<dl>
<dt><a id="length" name="length"><code><length></code></a></dt>
<dd>Voir {{cssxref("<length>")}} pour les unités qui peuvent être utilisées.</dd>
<dt><a id="percentage" name="percentage"><code><percentage></code></a></dt>
<dd>Permet de définir la largeur en pourcentages ({{cssxref("<percentage>")}}) par rapport à la largeur du bloc contenant le bloc courant. Si la largeur du bloc englobant dépend de la largeur de l'élément, la disposition est indéfinie.</dd>
<dt><code><a id="border-box" name="border-box">border-box</a> </code>{{experimental_inline}}</dt>
<dd>Si cette valeur est présente, la longueur ({{cssxref("<length>")}}) ou le pourcentage ({{cssxref("<percentage>")}}) est appliqué à la boîte de bordure (<em>border</em>) de l'élément.</dd>
<dt><a id="content-box" name="content-box"><code>content-box</code></a> {{experimental_inline}}</dt>
<dd>Si cette valeur est présente, la longueur ({{cssxref("<length>")}}) ou le pourcentage ({{cssxref("<percentage>")}}) est appliqué à la boîte de contenu de l'élément.</dd>
<dt><a id="auto" name="auto"><code>auto</code></a></dt>
<dd>Le navigateur calculera et sélectionnera une largeur pour l'élément.</dd>
<dt><a id="fill" name="fill"><code>fill</code></a> {{experimental_inline}}</dt>
<dd>Utilise la taille <code>fill-available</code> dans l'axe du sens de lecture ou la taille <code>fill-available</code> dans l'axe perpendiculaire au sens de lecture selon le mode d'écriture.</dd>
<dt><a id="max-content" name="max-content"><code>max-content</code></a> {{experimental_inline}}</dt>
<dd>La largeur intrinsèque préférée.</dd>
<dt><a id="min-content" name="min-content"><code>min-content</code></a> {{experimental_inline}}</dt>
<dd>La largeur intrinsèque minimum.</dd>
<dt><a id="available" name="available"><code>available</code></a> {{experimental_inline}}</dt>
<dd>La largeur du bloc contenant le bloc courant, moins la marge horizontale, la bordure et le remplissage (<em>padding</em>).</dd>
<dt id="fit-content"><a id="fit-content" name="fit-content"><code>fit-content</code></a> {{experimental_inline}}</dt>
<dd>La quantité la plus grande entre :
<ul>
<li>La largeur intrinsèque minimum</li>
<li>Le minimum entre la largeur intrinsèque préférée et la largeur disponible</li>
</ul>
</dd>
</dl>
<h3 id="Syntaxe_formelle">Syntaxe formelle</h3>
{{csssyntax}}
<h2 id="Exemples">Exemples</h2>
<h3 id="Valeur_par_défaut">Valeur par défaut</h3>
<pre class="brush:css">p.goldie {
background: gold;
}</pre>
<pre class="brush:html"><p class="goldie">La communauté Mozilla ressemble à un panda roux.</p></pre>
<p>{{EmbedLiveSample('Valeur_par_défaut', '500px', '64px')}}</p>
<h3 id="En_utilisant_les_pixels_et_les_em">En utilisant les pixels et les <code>em</code></h3>
<pre class="brush: css">.longueur_px {
width: 200px;
background-color: red;
color: white;
border: 1px solid black;
}
.longueur_em {
width: 20em;
background-color: white;
color: red;
border: 1px solid black;
}
</pre>
<pre class="brush: html"><div class="longueur_px">Largeur mesurée en pixels</div>
<div class="longueur_em">Largeur mesurée en ems</div></pre>
<p>{{EmbedLiveSample('En_utilisant_les_pixels_et_les_em', '500px', '64px')}}</p>
<h3 id="En_utilisant_les_pourcentages">En utilisant les pourcentages</h3>
<pre class="brush: css">.pourcent {
width: 20%;
background-color: silver;
border: 1px solid red;
}</pre>
<pre class="brush: html"><div class="pourcent">Largeur exprimée en pourcentages</div></pre>
<p>{{EmbedLiveSample('En_utilisant_les_pourcentages', '500px', '64px')}}</p>
<h3 id="En_utilisant_max-content">En utilisant <code>max-content</code></h3>
<pre class="brush:css;">p.maxgreen {
background: lightgreen;
width: intrinsic; /* Safari/WebKit utilisent un nom non-standard */
width: -moz-max-content; /* Firefox/Gecko */
width: -webkit-max-content; /* Chrome */
}</pre>
<pre class="brush:html"><p class="maxgreen">La communauté Mozilla ressemble à un panda roux.</p></pre>
<p>{{EmbedLiveSample('En_utilisant_max-content', '500px', '64px')}}</p>
<h3 id="En_utilisant_min-content">En utilisant <code>min-content</code></h3>
<pre class="brush:css">p.minblue {
background: lightblue;
width: -moz-min-content; /* Firefox */
width: -webkit-min-content; /* Chrome */
}</pre>
<pre class="brush:html"><p class="minblue">La communauté Mozilla ressemble à un panda roux.</p></pre>
<p>{{EmbedLiveSample('En_utilisant_min-content', '500px', '155px')}}</p>
<h2 id="Accessibilité">Accessibilité</h2>
<p>Il faut s'assurer que les éléments sur lesquels on utilise <code>width</code> ne sont pas tronqués et ne masquent pas d'autre contenu sur la page lorsque l'utilisateur zoome afin d'agrandir la taille du texte.</p>
<ul>
<li><a href="/fr/docs/Web/Accessibility/Understanding_WCAG/Perceivable#Guideline_1.4_Make_it_easier_for_users_to_see_and_hear_content_including_separating_foreground_from_background">Comprendre les règles WCAG 1.4</a></li>
<li><a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-scale.html" rel="noopener"><em>Understanding Success Criterion 1.4.4 | Understanding WCAG 2.0</em> (en anglais)</a></li>
</ul>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Spécification</th>
<th scope="col">État</th>
<th scope="col">Commentaires</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('CSS3 Sizing', '#width-height-keywords', 'width')}}</td>
<td>{{Spec2('CSS3 Sizing')}}</td>
<td>Ajout des mots-clés <code>max-content</code>, <code>min-content</code>, <code>available</code>, <code>fit-content</code>, <code>border-box</code> et <code>content-box</code>.</td>
</tr>
<tr>
<td>{{SpecName('CSS3 Transitions', '#animatable-css', 'width')}}</td>
<td>{{Spec2('CSS3 Transitions')}}</td>
<td><code>width</code> peut désormais être animée.</td>
</tr>
<tr>
<td>{{SpecName('CSS2.1', 'visudet.html#the-width-property', 'width')}}</td>
<td>{{Spec2('CSS2.1')}}</td>
<td>Précision sur les éléments auxquels peuvent être appliquée la propriété.</td>
</tr>
<tr>
<td>{{SpecName('CSS1', '#width', 'width')}}</td>
<td>{{Spec2('CSS1')}}</td>
<td>Définition initiale.</td>
</tr>
</tbody>
</table>
<p>{{cssinfo}}</p>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p>{{Compat("css.properties.width")}}</p>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li><a href="/fr/docs/Web/CSS/Modèle_de_boîte">Le modèle de boîtes</a>, {{cssxref("height")}}, {{cssxref("box-sizing")}}, {{cssxref("min-width")}}, {{cssxref("max-width")}}</li>
</ul>
|