C'est en voulant reproduire en css un graphisme effectué par un client sur un powerpoint que j'ai été amenée à me poser cette question : est-ce possible de diminuer l'opacité d'un élément tel qu'une balise div de façon à ce qu'il laisse voir par transparence le fond d'une page ?
Quelques rapides petits tours sur les tutoriels et forums m'ont appris l'existence d'une propriété css : opacity.
Pour que la propriété opacity fonctionne, il faut faire comme ça dans la feuille de styles :
#div {
opacity : 0.1;
filter : alpha(opacity=10);
-moz-opacity : 0.1;
}
Le 0.1 correspond au niveau d'opacité demandé, ce nombre devant être compris entre 0 et 1 (0 est totalement transparent et 1 totalement opaque).
La propriété filter sert à faire fonctionner l'opacité sous Internet Explorer, cette fois-ci le nombre devant être compris entre 0 et 100 (100 étant totalement opaque, vous l'aurez deviné).
La propriété -moz-opacity, c'est la même chose mais spécifique à mozilla, ça aussi vous l'aurez deviné.
Et bien, devinez quoi ? C'est bien beau tout ça mais ça n'a pas marché. En effet, on peut arriver à faire fonctionner la propriété opacity sous bien des navigateurs mais sous IE7 ça ne marche pas !
Et oui, c'est encore Internet Explorer qui fait des siennes, pour changer ! (un jour il faudra que j'écrive un billet sur les problèmes que moi et nombre de Webmasters ont avec Internet Explorer, et même avec Microsoft en général, un jour il faudra...)
J'ai donc laissé tomber la propriété opacity car j'ai trouvé quelque chose de mieux encore : les gif ou png transparents.
En effet, il est possible d'enregistrer une image gif ou png transparente et de la mettre comme image de fond sur une div. Cette div aura alors un fond semi-opaque, sur Mozilla et même sur IE7, et laissera voir le fond de la page la contenant.
Du coup, mon code ressemble plutôt à ça :
#div {
background-image: url(images/image_transparente.png);
}
Bien entendu, après coup, l'idée de l'image transparente de fond me paraît encore plus simple que la propriété opacity, mais vous savez ce que c'est, on perd souvent beaucoup de temps à trouver l'idée la plus élémentaire...