Teinter une image de fond sans incidence sur le contenu en CSS

Teinter une image de fond sans incidence sur le contenu en CSS
par Rémi Leclerc, le 24/10/2015

En CSS, pour teinter une image de fond sans altérer le contenu du bloc, notamment textuel, l'astuce consiste à utiliser la fonction rgba().

Par exemple, imaginons le code suivant:

<div class="container">
    <p>Bonjour les oiseaux !</p>
    <p>Regardez-les voler vers les nuages.</p>
</div>
.container{
    background-image:url(../oiseaux.jpg);
}

Nous allons créer un nouveau bloc dans lequel nous placerons un fond coloré semi-transparent avec rgba().

<div class="container">
    <div class="container-transparence">
        <p>Bonjour les oiseaux !</p>
        <p>Regardez-les voler vers les nuages.</p>
    </div>
</div>
.container{
    background-image:url(../oiseaux.jpg);
}
.container-transparence{
    background-color:rgba(255, 0, 0, 0.3);
}

Dans cet exemple, nous créons un voile légèrement rouge au-dessus de l'image de fond.
Les 3 premiers paramètres de la fonction rgba() sont les couleurs RVB (rouge, vert et bleu) - 255, 0, 0 correspondant à #ff0000 (rouge) - et le dernier paramètre correspondant à l'opacité, de 0 (transparent) à 1 (aucune transparence).