--- title: background-size slug: Web/CSS/background-size tags: - CSS - Propriété - Reference translation_of: Web/CSS/background-size ---
La propriété CSS background-size
définit la taille des images d'arrière-plan pour l'élément. La taille de l'image peut être contrainte, complètement ou partiellement afin de conserver ses proportions.
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 https://github.com/mdn/interactive-examples et à envoyer une pull request !
Note : L'espace qui n'est pas rempli par l'image d'arrière-plan aura la couleur définie par la propriété {{cssxref("background-color")}}. De plus, la couleur d'arrière-plan sera visible si l'image d'arrière-plan est transparente.
/* Valeurs avec un mot-clé */ background-size: cover; background-size: contain; /* Une seule valeur */ /* La valeur désigne la largeur de l'image. */ /* La hauteur vaut 'auto'. */ background-size: 50%; background-size: 3.2em; background-size: 12px; background-size: auto; /* Deux valeurs */ /* Première valeur : la largeur de l'image */ /* Seconde valeur : la hauteur de l'image */ background-size: 50% auto; background-size: 3em 25%; background-size: auto 6px; background-size: auto auto; /* Valeurs pour plusieurs arrière-plans */ background-size: auto, auto; /* À ne pas confondre avec `auto auto` */ background-size: 50%, 25%, 25%; background-size: 6px, auto, contain; /* Valeurs globales */ background-size: inherit; background-size: initial; background-size: unset;
La propriété background-size
peut être définie de différentes façons :
contain
ou cover
.auto
par défaut)auto
.Lorsqu'on souhaite paramétrer la taillle de plusieurs images d'arrière-plan, on peut séparer ces valeurs par des virgules (l'ordre utilisé entre les valeurs suit celui de {{cssxref("background-image")}}).
contain
cover
contain
. L'image est redimensionnée pour être aussi grande que possible et pour conserver ses proportions. L'image couvre toute la largeur ou la hauteur du conteneur et les parties qui dépassent sont rognées si les proportions du conteneur sont différentes (il n'y aucun espace libre sur lequel on verrait la couleur d'arrière-plan).auto
<length>
<percentage>
fixed
, la zone de positionnement de l'arrière-plan sera la fenêtre du navigateur (sans les barres de défilement). Les valeurs négatives ne sont pas autorisées.Le calcul des valeurs dépend des dimensions intrinsèques de l'image (sa largeur et sa hauteur) et de ses proportions intrinsèques (le rapport entre la largeur et la hauteur). Voici les différents cas de figures possibles :
Note : Le comportement associé aux dégradés (<gradient>
) a été modifié avec Gecko 8.0 {{geckoRelease("8.0")}}. Auparavant, les dégradés étaient traités comme des images sans dimensions intrinsèques mais avec des proportions intrinsèques identiques à celles de la zone de positionnement de l'arrière-plan.
Note : Pour Gecko, les images d'arrière-plan créées avec la fonction {{cssxref("element()")}} sont actuellement traitées comme des images ayant les dimensions de l'élément ou, si la zone de positionnement est un élément SVG, avec les proportions intrinsèques. Ce comportement n'est pas standard.
Selon le caractère intrinsèque ou non des dimensions et des proportions, la taille d'affichage de l'image d'arrière-plan est calculée de la façon suivante :
background-size
sont définis et qu'aucun ne vaut auto
:background-size
vaut contain
ou cover
:background-size
vaut auto
ou auto auto
:contain
avait été utilisée.preserveAspectRatio
pour lequel la valeur par défaut est équivalente à contain
. Pour Firefox 43, à la différence de Chrome 52, une valeur explicite pour background-size
permet d'ignorer preserveAspectRatio
.background-size
possède une composante auto
et que l'autre composante est différente de auto
:Note : Le dimensionnement des images d'arrière-plan qui sont des images vectorielles sans dimension ou proportion intrinsèque n'est pas implémenté par l'ensemble des navigateur. Attention à bien vérifier le résultat obtenu dans les différents navigateurs par rapport aux règles émises ci-avant.
{{csssyntax}}
cover
div { height: 300px; width: 200px; background-color: palegreen; background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg); background-repeat: no-repeat; } .exemple_cover { background-size: cover; }
<div class="exemple_cover"></div>
{{EmbedLiveSample("cover","200","300")}}
contain
div { height: 300px; width: 200px; background-color: palegreen; background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg); background-repeat: no-repeat; } .exemple_cover { background-size: contain; }
<div class="exemple_cover"></div>
{{EmbedLiveSample("contain","200","300")}}
auto 50%
div { height: 300px; width: 200px; background-color: palegreen; background-image: url(https://mdn.mozillademos.org/files/12988/p_201.jpg); background-repeat: no-repeat; } .exemple_cover { background-size: auto 50%; }
<div class="exemple_cover"></div>
{{EmbedLiveSample("auto_50","200","300")}}
Si on utilise un dégradé (<gradient>
) comme arrière-plan et qu'on définit une valeur associée pour la propriété background-size
, mieux vaut ne pas définir une taille qui n'utilise qu'un seul composant auto
ou qu'une seule largeur (par exemple background-size: 50%
). En effet, le rendu de tels éléments a été modifié avec Firefox 8 et peut avoir un comportement différent entre les navigateurs (tous n'implémentent pas exactement la spécification CSS3 pour background-size
et la spécification CSS3 pour les images qui sont des dégradés).
.gradient-exemple { width: 50px; height: 100px; background-image: linear-gradient(blue, red); /* Méthode risquée */ background-size: 25px; background-size: 50%; background-size: auto 50px; background-size: auto 50%; /* Sans risque */ background-size: 25px 50px; background-size: 50% 50%; }
On notera qu'il n'est pas recommandé d'utiliser une dimension exprimée en pixels et une autre dimension avec auto
lorsqu'on manipule des dégradés car il est impossible d'obtenir le même rendu que celui de Firefox pour les versions antérieures à Firefox 8 sans connaître la taille exacte de l'élément dont on définit l'arrière-plan.
Spécification | État | Commentaires |
---|---|---|
{{SpecName('CSS3 Backgrounds', '#the-background-size', 'background-size')}} | {{Spec2('CSS3 Backgrounds')}} | Définition initiale. |
{{cssinfo}}
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 pull request sur https://github.com/mdn/browser-compat-data.
{{Compat("css.properties.background-size")}}