Tous les éléments HTML (qu'ils soient de type bloc ou en ligne) peuvent avoir une ou plusieurs images de fond et de nombreuses propriétés leur sont associées : provenance de l'image, position, répétition, taille, etc.

La propriété raccourci background est généralement utilisée car elle permet de condenser en une seule déclaration toutes ces propriétés.

Définir l'image source

Pour définir l'image source du fond, on utilise la propriété background-image.

La valeur de cette propriété est l'URL du fichier source, spécifiée en utilisant la fonction CSS url().

body { background-image: url(fond.png); }
#logo { background-image: url("../deco/logo.jpg"); }
div { background-image: url('images/papier.gif'); }

L'URL passée en paramètre peut être une URL relative ou une URL absolue. Elle peut être entourée avec des guillements doubles, des guillemets simples ou ne pas être entourée.

Dans l'exemple suivant on utilise 2 images de fond :
fond de la page
fond du titre
Pour mettre les textes en relief, on leur affecte une couleur de fond transparente avec la fonction de couleur rgba().
Exemple : images de fond
Fichier CSS : styles.css

Une astuce souvent utilisée en particulier avec les éléments d'interface (icônes, menus, liens) est de mettre une image de fond et de changer cette image lorque la souris survole l'élément (ie rollover). Une technique simple est de changer la valeur de la propriété background-image en utilisant le sélecteur de pseudo-classe :hover.

Exemple : images de fond
Fichier CSS : styles.css

Pour une autre technique plus performante voir Sprite CSS

Répétition de l'image de fond

Si une image est trop petite pour remplir entièrement le fond d'un élément, par défaut elle est automatiquement répétée horizontalement et verticalement pour couvrir toute la surface du fond.
On peut intervenir sur la répétition avec la propriété background-repeat qui peut avoir les valeurs :

Exemple : répétition des images de fond
Fichier CSS : styles.css

Il existe 2 autres valeurs possibles pour la propriété background-repeat :

Tous les navigateurs n'implémentent pas ses 2 valeurs. Si votre navigateur n'afficha pas correctement l'exemple qui suit, essayez le avec Chrome.

image de fond (104 pixels X 104 pixels)
Exemple : répétition des images de fond
Fichier CSS : styles.css

Le test de l'exemple devrait donner l'affichage suivant :

background-repetition space et round

Zone couverte par l'image de fond

Par défaut, l'image de fond s'applique sur la zone de contenu, les marges internes et sous les bordures. Avec la propriété background-clip nous pouvons rédéfinir la zone ou s'applique l'image de fond :

content-box
padding-box
border-box
Exemple : zone de fond
Fichier CSS : styles.css

Le test de l'exemple montre que quelque soit la valeur de background-clip, le point de base servant à la répétition de l'image est situé en haut à gauche de la marge interne (padding).

Position de l'image de fond

Quand l'image de fond ne se répéte pas (background-repeat: no-repeat), la propriété background-position permet de positionner l'image dans le fond de la boîte par rapport à son origine de positionnement (background-origin).

La valeur de background-position est généralement un couple de valeurs permettant de définir les coordonnées horizontale et verticale de l'image.
Ces coordonnées peuvent être exprimées par des longueurs, des pourcentages et des mot-clés.

Exemple : position des images de fond
Fichier CSS : styles.css

Les combinaisons possibles entre longueurs, pourcentages et mot-clés sont assez étendues (spécifications du W3C).

différents nombres de valeurs pour background-position

Les valeurs de la propriété background-position peuvent être négatives.

déclalage avec valeurs positives
déclalage avec valeurs négatives

Sprites CSS

La propriété background-position est à la base de la technique des "sprites CSS" : on utilise un seul fichier graphique pour stocker plusieurs images positionnées les unes à côté des autres, comme dans une grille d'images.
Chaque image de la grille est utilisée comme fond d'une boîte, en particulier pour les boîtes représentant des éléments d'interface comme les icônes, les barres de navigation, des décorations de liens, etc.

sprites google.fr
sprites facebook.fr
sprite youtube.com

L'avantage de cette technique est un meilleur temps de chargement des pages car les appels au serveur Web sont limités : les requêtes HTTP sont réduites au strict minimum ainsi que le nombre de fichiers envoyés par le serveur et reçus par le navigateur. De plus la taille d'un grand fichier sera moins grande que la somme des tailles des petits fichiers qu'il réunit.

Dans l'exemple suivant on utilise une seule image pour en regrouper huit autres.

sprites des films

Le poids de l'image est de 49.9ko, alors que le poids total des huits images indépendantes est de 76.4ko. En plus du nombre d'octets moindre à transférer, il y aura une seule requête HTTP plutôt que huit, donc une charge bien moindre pour le serveur.

Exemple : sprites CSS
Fichier CSS : styles.css

Attachement du fond

La propriété background-attachment définit comment l'image se déplace quand la page est déplacée avec les ascenceurs verticaux ou horizontaux :

Exemple : sprites CSS
Fichier CSS : styles.css

Taille de l'image de fond

On peut définir la taille de l'image de fond avec la propriété background-size.
Les valeurs de cette propriété peuvent être des longueurs (avec n'importe quelle unité) ou des mots-clés.

définition de la largeur et de la hauteur

On peut aussi utiliser les mots-clés cover et pour contain à la place des dimensions de largeur et hauteur. Dans ce cas l'image est redimensionnée sans déformation :

Exemple : taille de l'image de fond
Fichier CSS : styles.css

L'exemple suivant présente une page avec une image de fond qui occupe automatiquement toute la surface de la page et qui se rédimenssionne en même temps que la page (testez de préférence avec le bouton 'Tester dans pop-up' et redimenseionnez la fenêtre de test pour voir l'effet).
On utilisera pour cette réalisation les propriétés :

Exemple : image de fond
Fichier CSS : styles.css

Raccourci background

La propriété-raccourci background permet de définir en une fois :

Propriété raccourci background

Le plus souvent on trouvera ces sortes de raccourcis :

/* Uniquement une couleur de fond */
background: rgb(146, 35, 240);
/* Uniquement une image avec répétition horizontale et verticale */
background: url(images/fond.png);
/* Une image sans répétition */
background: url(images/logo.png) no-repeat;
/* Une image positionnée et une couleur de fond */
background: url(images/icone.png) 10px center no-repeat #FF45A9;