28172 sujets

CSS et mise en forme, CSS3

Bonjour,

J'ai un petit soucis concernant les bordures. Lorsque je spécifie une certaine opacité pour un div, je m'aperçoit que les bordures deviennent également opaques, or je ne veux pas...

voici mon code : (j'ai essayé de plsuieurs manière et le résultat est le même)


<html>
<head>
<style>
#coucou3
{
border: 2px dashed black;
background: red;
width: 200px;
height: 200px;
opacity: 0.2;
-moz-opacity: 0.2;
-khtml-opacity: 0.2;
filter: "alpha(opacity=20)";
}
</style>
</head>
<body>
<div id="coucou1"></div>
<div id="coucou3"></div>
<script>
var coucou1 = document.getElementById('coucou1');
coucou1.style.border = "2px dashed black";
coucou1.style.background = "blue";
coucou1.style.height = "200px";
coucou1.style.width = "200px";
coucou1.style.opacity = "0.2";
coucou1.style.opacity = 0.2;
coucou1.style.MozOpacity = 0.2;
coucou1.style.KhtmlOpacity = 0.2;
coucou1.style.filter = "alpha(opacity=20)";

var coucou2 = document.createElement('div');
coucou2.style.border = "2px dashed black";
coucou2.style.background = "green";
coucou2.style.height = "200px";
coucou2.style.width = "200px";
coucou2.style.opacity = 0.2;
coucou2.style.MozOpacity = 0.2;
coucou2.style.KhtmlOpacity = 0.2;
coucou2.style.filter = "alpha(opacity=20)";
document.body.appendChild(coucou2);
</script>
</body>
</html>



EDIT: je précise que dans la mesure du possible je vodurais éviter d'utiliser une image de fond pour la transparence
Modifié par fieldset (15 Feb 2008 - 13:45)
Bonjour,

Il faudrait faire:
background-color: rgba(255,255,255,0.2);


Problème: très faible compatibilité avec les navigateurs (Safari 3 -- peut-être le 2 également, à voir -- et Firefox 3).
Cf. http://web.covertprestige.info/test/28-support-couleurs-rvba-css3.html

Donc dans les solutions possibles:
- passer par une image de fond (oui je sais, mais quand ya pas le choix...);
- faire deux div imbriqués: un pour la bordure (opacité à 1, donc par défaut), et le deuxième avec la couleur de fond (opacité à 0.2).
Je te remercie Smiley smile

J'ai effectivement utilisé la solution n°2, en imbriquant un div ayant une opacité de 0.2 et une taille de 100% en hauteur et largeur Smiley smile

Merci beaucoup Smiley smile