Background-size - Propriété CSS

background-size

Résumé des caractéristiques de la propriété background-size

Description rapide
Dimensionnement de l'image d'arrière-plan.
Statut
Standard
Utilisable sur
HTML
Valeurs prédéfinies
auto | contain | cover
Pourcentages
Calculés par rapport aux dimensions de la zone de fond de l'élément.
Valeur initiale
auto
Héritée par défaut
Non.
Type d'animation
Repeatable list : liste répétable.
Module W3C
Module CSS - Arrière-plans et bordures
Références (W3C)
Statut du document: CR (document candidat à la recommandation)

Schéma de la syntaxe de background-size.

Schéma syntaxique de la propriété CSS background-sizeSyntaxe de background-size (taille de l'arrière-plan). auto auto cover cover contain contain length-x / %x length-x / %x , , length-y / %y length-y / %ybackground-size:;background-size:;
Schéma syntaxique de la propriété background-size
Les liens du schéma donnent accès à plus de détails

Sur le schéma, les termes en gras sont les mots prédéfinis de CSS, les autres termes sont décrits ci-dessous :

  • length-x et length-y sont des valeurs numériques positives ou nulles, suivies d'une des unités de dimension.
  • %-x est un pourcentage calculé par rapport à la largeur de l'élément.
  • %-y est calculé par rapport à la hauteur de l'élément.
  • S'il y a plusieurs arrière-plans, les valeurs peuvent être répétées, en les séparant par une virgule.

Description de la propriété background-size.

background-size est la propriété CSS qui définit les dimensions de l'image d'arrière-plan.

Le comportement de la propriété background-size est fortement lié à la présence ou à l'absence de dimensions définies dans l'arrière-plan choisi (dimensions intrinsèques).

  • Les images (fichiers jpeg, jpg, png, gif...) ont nécessairement des dimensions intrinsèques.
  • Les dégradés n'ont pas de dimensions intrinsèques.
  • Les fichiers SVG peuvent avoir ou non des dimensions intrinsèques.

Si vous souhaitez consulter des explications générales sur les arrière-plans en CSS, reportez-vous à la page background.

Syntaxes de background-size.

  • background-size: auto;

    auto est la valeur par défaut pour background-size.
    Si l'arrière-plan est une image, donc avec des dimensions intrinsèques, les dimensions de l'arrière-plan seront celles de l'image originale.
    Si l'arrière-plan choisi n'a pas de dimensions intrinsèques, il sera dimensionné à la même taille que l'élément.

  • background-size: cover;

    Avec la valeur cover, background-size redimensionne l'arrière-plan pour couvrir toute la surface de l'élément.
    Si l'arrière-plan est une image et que la ratio de l'image est différent de celui de l'élément, une partie de l'image ne sera pas affichée.
    Si l'arrière-plan n'a pas de dimensions intrinsèques, cover est équivalent à auto.

  • background-size: contain;

    L'arrière-plan est redimensionné pour être totalement visible.
    Si l'arrière-plan est une image et que la ratio de l'image est différent de celui de l'élément, l'image peut être répétée ou bien une partie de l'élément ne sera pas couverte par l'image (voir background-repeat pour gérer la répétition de l'arrière-plan).
    Si l'arrière-plan n'a pas de dimensions intrinsèques, contain est équivalent à auto.

  • background-size: 100px;

    background-size utilisée avec une valeur numérique unique : un nombre, positif ou égal à zéro, avec son unité de dimension (voir les unités de dimension). S'il s'agit d'un pourcentage il sera calculé par rapport à la largeur de l'élément.
    Cette valeur sera utilisée pour dimensionner la largeur de l'image d'arrière-plan.
    S'il s'agit d'une image, donc avec des dimensions intrinsèques, la hauteur sera calculée pour conserver les proportions de l'image originale.
    Si l'arrière-plan n'a pas de dimensions intrinsèques,la hauteur sera calculée en fonction des proportions de l'élément.

  • background-size: 100px 50px;

    background-size utilisée avec deux valeurs numériques séparées par un espace. Deux nombres, positifs ou égaux à zéro, avec leur unité de dimension (voir les unités de dimension).
    La première valeur indique la largeur de l'arrière-plan ; la deuxième valeur sa hauteur.
    S'il s'agit de pourcentages, le premier est calculé par rapport à la largeur de l'élément, et le deuxième par rapport à sa hauteur.

  • background-size: 100px 50px, cover, 100% 100%;

    background-size utilisée avec une série de valeurs, chacune d'elles étant séparée des autres par une virgule. Cette syntaxe est utilisable lorsque plusieurs arrière-plans ont été définis. Reportez-vous à la page background.

Valeurs globales
(communes à toutes les propriétés)

background-size: initial (auto) background-size: inherit background-size: revert background-size: revertLayer background-size: unset

Consultez les pages suivantes pour plus de détails : initial, inherit, revert, revert-layer, unset.

Accéder à la propriété background-size par programme.

Changer la taille de l'arrière-plan, avec Javascript.

En Javascript, la valeur de la propriété background-size peut être modifiée avec l'un des codes ci-dessous. On voit que Javascript propose une syntaxe avec la notation {abbrKebabCase} typique de CSS (un tiret pour séparer les mots), et une autre syntaxe avec la notation camel-case plus courante en Javascript (une majuscule pour séparer les mots).

Javascript
let el = document.getElementById('id'); el.style['background-size'] = 'cover'; // ou let el = document.getElementById('id'); el.style.backgroundSize = 'cover';

Relire la taille de l'arrière-plan en Javascript.

En Javascript, voici comment lire la valeur de background-size. La valeur n'est récupérable que si la propriété a été affectée directement à l'élément lui-même et pas via un sélecteur CSS. La valeur est renvoyée exactement comme elle a été définie dans la feuille de styles (un mot clé, une paire de valeurs, etc.).

Javascript
let el = document.getElementById('id'); let value = el.style['background-size']; // ou let el = document.getElementById('id'); let value = el.style.backgroundSize;

Lire la valeur calculée de background-size en Javascript.

La valeur calculée de background-size peut être retrouvée avec le code ci-après. Le résultat est soit un mot clé (auto, cover, contain, etc.), soit une paire de valeurs numériques en pixels, quelque soit l'unité utilisée dans la feuille de styles.

Javascript
let el = document.getElementById('id'); let value = window.getComputedStyle(el).getPropertyValue('background-size');

Changer la taille de l'arrière-plan avec JQuery.

Avec JQuery, voici un exemple de code pour modifier la valeur de la propriété background-size.

JQuery

$('#id').css('background-size', 'cover');
// ou
$('#id').css('backgroundSize', 'cover');

Lire la valeur calculée de background-size avec JQuery.

Avec JQuery, lire la valeur calculée de la propriété background-size peut se faire avec l'un ou l'autre de ces codes.

JQuery
let value = $('#id').css('background-size');

Autres exemples de code.

Trouvez d'autres exemples de code Javascript et JQuery sur la page Javascript et CSS.

Testez vous-même.

Les boutons ci-dessous appliquent la valeur saisie à la propriété background-size et affichent ensuite soit la valeur telle qu'elle a été appliquée, soit la valeur calculée. Cette deuxième option permet de voir comment est mémorisée (sérialisée) la valeur de background-size. On constate en particulier que les pourcentages sont bien mémorisés en tant que pourcentages (voir le chapitre sur l'héritage). Toutes les autres unités sont converties en pixels. Les valeurs prédéfinies sont bien sûr conservées en l'état.

Exemple interactif avec la propriété background-size.

Choix de l'arrière-plan :
background-size :

Compatibilité des navigateurs avec background-size.

La propriété background-size ne présente pas de problème de compatibilité sur l'ensemble des navigateurs actuels.

Colonne 1
Support de la propriété background-size pour définir la taille des images d'arrière-plan.
1
Porpriété
background-size
Estimation de la prise en charge globale.
96%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Chrome

Edge

Opéra

Safari

Safari sur IOS

Androïd Brower

Chrome pour Androïd

Firefox pour Androïd

Samsung Internet

Firefox

Baidu Browser

QQ Browser

UC Browser pour Androïd

Opéra mini

Histoire de la propriété background-size.

Voir aussi, au sujet des arrière-plans.

Tout ce qui concerne les arrière-plans et les bordures et décrit dans la spécification CSS Backgrounds and Borders Module du W3C. Voici les principales propriétés décrites dans cette norme.

Propriétés :

background
Résumé des propriétés de l'arrière-plan.
background-attachment
Mode de défilement de l'image d'arrière-plan.
background-clip
Définit l'étendue de l'arrière-plan, en particulier par rapport à la bordure et aux marges intérieures..
background-color
Définit la couleur en arrière-plan.
background-image
Définit l'image ou dégradé d'arrière-plan (plusieurs images ou dégradés peuvent coexister).
background-origin
Définit une référence pour positionner l'image d'arrière-plan.
background-position
Définit comment se positionne l'image d'arrière-plan.
background-position-x
Définit comment se positionne l'image d'arrière-plan dans le sens horizontal.
background-position-y
Définit comment se positionne l'image d'arrière-plan dans le sens vertical.
background-repeat
Définit comment est répétée l'image d'arrière-plan.
border
Propriété résumée qui définit l'ensemble des paramètres des bordures.
border-bottom-left-radius
Définit le rayon de l'angle arrondi en bas à gauche.
border-bottom-right-radius
Définit le rayon de l'angle arrondi en bas à droite.
border-color
Définit la couleur des bordures.
border-image
Résumé des propriétés des bordures réalisées avec des images.
border-image-outset
Définit le débordement de l'image de bordure.
border-image-repeat
Définit comment l'image de bordure est répétée ou dilatée pour couvrir la zone voulue.
border-image-slice
Définit comment l'image de bordure est découpée.
border-image-source
Définit l'image utilisée pour construire la bordure.
border-image-width
Définit l'épaisseur de la bordure lorsque cette dernière est réalisée avec une image.
border-radius
Rayon des angles arrondis.
border-style
Type de bordure (solide, double, pointillé...).
border-top-left-radius
Définit le rayon de l'angle arrondi en haut à gauche.
border-top-right-radius
Définit le rayon de l'angle arrondi en haut à droite.
border-width
Définit l'épaisseur de la bordure de l'élément.
box-shadow
Applique un effet d'ombrage sur les blocs en indiquant tous les paramètres : couleur, décalage de l'ombre, flou, etc.