La propriété width définit la largeur de la zone dédiée au contenu d'un élément. La zone de contenu est comprise à l'intérieur de la boîte de remplissage (padding), de la bordure (border) et de la boîte de marge (margin) de l'élément.
Les propriétés min-width et max-width permettent de surcharger width.
| Valeur initiale | auto |
|---|---|
| Applicabilité | tous les éléments sauf les éléments en ligne non remplacés, les lignes de tableaux et les groupes de lignes |
| Héritée | non |
| Pourcentages | se rapporte à la largeur du bloc contenant |
| Média | visuel |
| Valeur calculée | un pourcentage ou auto ou une longueur absolue |
| Animable | oui, comme une longueur, pourcentage ou calc() ; quand les deux valeurs sont des longueurs, elles sont interpolées comme des longueurs ; quand les deux valeurs sont des pourcentages, elles sont interpolées comme des pourcentages ; sinon, les deux valeurs sont converties dans une fonction calc() qui est la somme d'une longueur et d'un pourcentage (chaque valeur pouvant être à zéro), et cette fonction calc() interpole chaque moitié comme un nombre réel. |
| Ordre canonique | la longueur ou le pourcentage avant le mot-clé si les deux sont présents |
Syntaxe
/* 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;
Valeurs
<length>- Voir
<length>pour les unités qui peuvent être utilisées. <percentage>- Permet de définir la largeur en pourcentages (
<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. border-box- Si cette valeur est présente, la longueur (
<length>) ou le pourcentage (<percentage>) est appliqué à la boîte de bordure (border) de l'élément. content-box- Si cette valeur est présente, la longueur (
<length>) ou le pourcentage (<percentage>) est appliqué à la boîte de contenu de l'élément. auto- Le navigateur calculera et sélectionnera une largeur pour l'élément.
fill- Utilise la taille
fill-availabledans l'axe du sens de lecture ou la taillefill-availabledans l'axe perpendiculaire au sens de lecture selon le mode d'écriture. max-content- La largeur intrinsèque préférée.
min-content- La largeur intrinsèque minimum.
available- La largeur du bloc contenant le bloc courant, moins la marge horizontale, la bordure et le remplissage (padding).
fit-content- La quantité la plus grande entre :
- La largeur intrinsèque minimum
- Le minimum entre la largeur intrinsèque préférée et la largeur disponible
Syntaxe formelle
[<length> | <percentage>] && [border-box | content-box]? | available | min-content | max-content | fit-content | auto
Exemples
Valeur par défaut
p.goldie {
background: gold;
}
<p class="goldie">La communauté Mozilla ressemble à un panda roux.</p>
En utilisant les pixels et les em
.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;
}
<div class="longueur_px">Largeur mesurée en pixels</div> <div class="longueur_em">Largeur mesurée en ems</div>
En utilisant les pourcentages
.pourcent {
width: 20%;
background-color: silver;
border: 1px solid red;
}
<div class="pourcent">Largeur exprimée en pourcentages</div>
En utilisant max-content
p.maxgreen {
background: lightgreen;
width: intrinsic; /* Safari/WebKit utilisent un nom non-standard */
width: -moz-max-content; /* Firefox/Gecko */
width: -webkit-max-content; /* Chrome */
}
<p class="maxgreen">La communauté Mozilla ressemble à un panda roux.</p>
En utilisant min-content
p.minblue {
background: lightblue;
width: -moz-min-content; /* Firefox */
width: -webkit-min-content; /* Chrome */
}
<p class="minblue">La communauté Mozilla ressemble à un panda roux.</p>
Spécifications
| Spécification | Statut | Commentaires |
|---|---|---|
| CSS Basic Box Model La définition de 'width' dans cette spécification. |
Version de travail | Ajout des mots-clés max-content, min-content, available, fit-content, border-box et content-box. |
| CSS Transitions La définition de 'width' dans cette spécification. |
Version de travail | width peut désormais être animée. |
| CSS Level 2 (Revision 1) La définition de 'width' dans cette spécification. |
Recommendation | Précision sur les éléments auxquels peuvent être appliquée la propriété. |
| CSS Level 1 La définition de 'width' dans cette spécification. |
Recommendation | Définition initiale. |
Compatibilité des navigateurs
| Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Support simple | (Oui) | 1.0 (1.7 ou moins) | 4 | 3.5 | 1.0 (85) |
| Animation de cette propriété | ? | 16.0 (16.0) | ? | ? | ? |
max-content |
22.0 -webkit 46.0 [1] |
3.0 (1.9)-moz | ? | 15 -webkit | 2.0 (421) (intrinsic value)6.1 -webkit |
min-content |
22.0 [4] -webkit |
3.0 (1.9) -moz | ? | 15 -webkit | 2.0 (421) (min-intrinsic value)6.1 -webkit |
available |
Pas de support | 3.0 (1.9) -moz | ? | ? | ?[1] |
fill-available |
22.0 -webkit | Pas de support | ? | ? | 6.1 -webkit |
fit-content |
22.0 [4] -webkit 46.0 [1] |
3.0 (1.9) -moz | ? | 15 -webkit | 6.1 -webkit[2] |
border-box et content-box |
Pas de support | Pas de support | Pas de support | Pas de support | Pas de support |
fill |
46.0 | ? | ? | ? | ? |
| Fonctionnalité | Android | Webview Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome pour Android |
|---|---|---|---|---|---|---|---|
| Support simple | ? | (Oui) | ? | ? | ? | ? | (Oui) |
| Animation de cette propriété | ? | ? | 16.0 (16.0) | ? | ? | ? | ? |
max-content |
? | 46.0 [1] | ? | ? | ? | ? | 46.0 [1] |
min-content |
? | 46.0 [1] | ? | ? | ? | ? | 46.0 [1] |
available |
? | ? | ? | ? | ? | ? | ? |
fill-available |
? | 46.0 [1] | ? | ? | ? | ? | 46.0 [1] |
fit-content |
? | 46.0 [1] | ? | ? | ? | ? | 46.0 [1] |
border-box et content-box |
? | ? | ? | ? | ? | ? | ? |
fill |
Pas de support | 46.0 | ? | ? | ? | ? | ? |
[1] WebKit implémente une variation de cette valeur sous le nom fill-available (disponible en décembre 2013).
[2] Les versions antérieures de WebKit implémentaient une version antérieure de cette valeur avec le nom intrinsic, fit-content est également implémenté depuis la version 6.1.
[3] Non-préfixée.
[4] Les anciens moteurs WebKit supportent les mots-clés intrinsic et min-intrinsic mais ceux-ci ont été retirés avec Chrome 48.