Plusieurs images de fond grâce aux CSS

| Pascale Lambert | Kerod |

Grâce à la propriété background-image, il est très facile de mettre une image de fond dans le corps (body) d'une page web. Mais on ne peut qu'en mettre une seule...

Pour pouvoir mettre plusieurs images de fond, il faut définir des cadres (des div) auxquels on attribuera une image chacun.

N'hésitez pas à nous faire part de votre avis sur cet article : Commentez

- Titre : Plusieurs images de fond grâce aux CSS

- Auteurs : Pascale Lambert, Kerod

- Parution : 22 juillet 2010

- Mise à jour : 24 novembre 2010

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 22/07/2010 Pascale Lambert. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Compatibilité

- II. L'astuce

I - Compatibilité

Fonctionne avec :

- Tous les navigateurs graphiques.

Attributs utilisés:

- background-position ; background-repeat ; background-image ;

- margin ;

- text-align.

II - L'astuce

Prenons l'exemple d'une image (houx2.gif) placée aux quatre coins de la page. On va définir quatre cadres imbriqués (hg, hd, bg, bd), puis leur attribuer un background-position adéquat pour que les images se placent aux quatre coins. Les marges définies dans le cadre contenu sont précisées en fonction de la taille de l'image pour ne pas que le texte empiète dessus.

Code CSS

#hg, #hd, #bg, #bd {
background-repeat:no-repeat;
background-image:url(houx2.gif);
}
#hg {
background-position:top left;
}
#hd {
background-position:top right;
}
#bg {
background-position:bottom left;
}
#bd {
background-position:bottom right;
}
#contenu {
margin-left:100px;
margin-right:100px;
}
#contenu p {
text-align:justify;
}

Code (X)HTML

<div id="hg">
<div id="hd">
<div id="bg">
<div id="bd">
<div id="contenu">
<h1>Les quatre coins</h1>
<p> [bla bla]</p>
</div> <!-- /contenu -->
</div> <!-- /bd -->
</div> <!-- /bg -->
</div> <!-- /hd -->
</div> <!-- /hg -->

Voir le résultat !

Attention tout de même à ne pas trop abuser de la méthode, trop de cadres tuent les cadres...