Liens et filtres IE pour rendre les fonds PNG transparents
Publié : 11 févr. 2005, 00:41
Bon le titre est un peu compliqué mais je suis face à un problème assez insoluble.
Je veux faire un "bête" paragraphe flottant par dessus une image, laquelle apparaît par transparence mais permet quand même de lire le texte, donc il faut atténuer l'image.
Mon balisage ressemble à ça :
La solution dans un navigateur supportant la transparence PNG est très simple : je mets un PNG uni blanc translucide (environ 50% de canal alpha) comme fond de mon div (ici, background.png) et ça fonctionne parfaitement (Firefox et Opera).
Maintenant pour que mon PNG soit transparent sous IE aussi, je lui applique une transformation DirectX dans un commentaire conditionnel (tadam) et ça fait le même effet.
Sauf que... les liens ne fonctionnent plus après ça ! Je sais toujours sélectionner le texte mais pas cliquer dessus. J'ai essayé plein de possibilités de z-index mais pas moyen de faire passer le lien "devant" sous IE. C'est bien de la faute du filtre parce que quand je l'enlève ça fonctionne de nouveau (mais le fond est opaque puisque le PNG est chargé "normalement").
Est-ce que quelqu'un a une idée de solution ? Ou pour reproduire le même effet d'une autre manière sans trop changer le balisage HTML ?
Je veux faire un "bête" paragraphe flottant par dessus une image, laquelle apparaît par transparence mais permet quand même de lire le texte, donc il faut atténuer l'image.
Mon balisage ressemble à ça :
Code : Tout sélectionner
<img src="../img/grandephoto.jpg" alt="">
<div class="textbox">
<p>Un peu de texte inintéressant, mais surtout <a href="http://www.geckozone.org">un lien</a>.</p>
<p>Encore un peu de texte.</p>
</div>
Code : Tout sélectionner
<style type="text/css">
.textbox {
position: absolute;
top: 8.5em;
left: 3em;
padding: 0.5em;
border: 1px solid black;
background:url(../img/background.png);
width: 55em;
}
Code : Tout sélectionner
<!--[if IE]>
<style type="text/css">
.textbox {
background: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../img/background.png',sizingMethod='scale');
}
</style>
<![endif]-->
Est-ce que quelqu'un a une idée de solution ? Ou pour reproduire le même effet d'une autre manière sans trop changer le balisage HTML ?