Un background plein écran flexible avec CSS

Introduction

Vous voulez une image en arrière plan qui s’adapte a la taille du navigateur, sans se déformer.

Comme vous pouvez le contraster, si vous essayer sur la page, elle ne se déforme pas. Le ratio de l’image est conservé et elle est recadrée.

Ceci est devenu possible grace a l’arrivé d’une nouvelle propriété CSS 3 :

background-size: cover;

L’image

Avant de créer votre page html, il vous faut bien sur avoir une image. L’image doit :

  • Etre rectangulaire pour les écrans et de grande taille pour ne pas pixelisé pour les grandes résolutions (1900x1200px par exemple)
  • Etre optimisé pour le web : Photoshop (payant) ou Gimp (gratuit) propose ce genre d’outil

Vous pouvez des images sur ces différents site : Fotolia, 500px, Deviantart par exemple (Attention, toutes les images ne sont pas libres de droit)

Le code

Le code HTML

Rien de plus simple, une page HTML vierge

Le code CSS

Nous allons maintenant placer le fond d’écran a la balise en précisant la propriété cover montré plus haut. Et enlever les marges intérieur (padding) et exterieur(margin) sur html, body (A noter qu’il est conseillé de le faire a chaque projet)

html, body
{
margin:0;
padding: 0;
}
body
{
  background: url(img/fond.jpg) no-repeat center fixed; 
  -webkit-background-size: cover; /* pour Chrome et Safari */
  -moz-background-size: cover; /* pour Firefox */
  -o-background-size: cover; /* pour Opera */
  background-size: cover; /* version standardisée */
}