28172 sujets

CSS et mise en forme, CSS3

Bonjour,

J'ai besoin d'ajouter au-dessus d'une image, un picto et une légende. Le problème n'est pas tant sur la css puisque j'obtiens le résultat escompté sous les principaux navigateurs (cf capture résultat), mais plutot le problème du lien qui n'est pas cliquable sous IE7.
Seule la légende l'est (sans le curseur indiquant qu'il s'agit d'un lien, mais je vais le rajouter au niveau css tant pis).
Par contre j'aimerais, que tout mon bloc soit cliquable, et non pas seulement la légende. Cela fonctionne très bien sous Firefox et Opera.

Quelq'un sait-il s'il s'agit d'un bug lié au positionnement absolu, ou du aux z-index?

Merci d'avance Smiley smile car là je ne vois pas trop.... Smiley ohwell

Visuellement OK exemple de résultat upload/2973-rendu-final.gif

Mon code HTML

<div class="bloc-items">
<div class="item-en-cours">
            <a target="_blank" href="http://www.alsacreations.com/" class="lien-item-en-cours">
                <span class="en-cours-logo"><img style="border-width: 0px;" alt="Picto exemple" src="http://forum.alsacreations.com/smilies/biggrin.gif" /></span>
                <span class="en-cours-miniature"><img style="border-width: 0px;" src="http://www.hiboox.com/lang-fr/image.php?img=yojjgerh.gif" /></span>
                <span class="en-cours-legende"><font class="titreRDV-en-cours">La soirée en détail </font>le 05/03/2008 22:54</span>
        </a>
        </div>
        ...
       ...
        </div>


et Ma CSS :


.item-en-cours{
display:block;
float:left;
position:relative;
width:205px;
height:120px;
}

.lien-item-en-cours{
	display:block;
	position:relative;
	width:205px;
	height:120px;
	text-decoration:none;
}

.en-cours-logo-chaine{
	position:absolute;
	z-index:3;
	top:0;
	left:0;
}

.en-cours-miniature{
	position:absolute;
	z-index:1;
	top:0;
	left:0;
	width:205px;
	height:120px;
}

.en-cours-legende{
	position:absolute;
	z-index:2;
	top:0;
	left:0;
	width:197px;
	height:43px;
	top:100%;
	left:0;
	margin-top:-45px;
	background-image:url('/images/rdv-en-cours/bgrd_en-cours.png');
	background-position:left top;
	background-repeat:repeat;
	color:#ffffff;
	padding:1px 4px 1px 4px;
	font-size:11px;
	text-align:left;
}

Modifié par nelero (31 Mar 2008 - 13:14)
j'ai eu beau chercher, je n'ai rien trouvé de comparable...

Personne n'a d'autres pistes?

Thanks Smiley bawling
Après tout ce temps, je n'ai toujours pas trouvé de parade à ce problème.... Smiley decu

même une piste ou un détour, je suis preneur Smiley smile
C'est du au positionnement du span dans le lien. Dans certains cas précis de positionnement, le lien n'est plus reconnu. J'ai eu un problème similaire il y a quelques temps. Je n'ai pas creusé plus que ça.
Merci pour la réponse mais alors comment faire pour contourner le problème pour les internautes sous IE7 ?
Hello,

Une page en ligne, ce serait plus simple. Smiley smile

Sinon, questions en vrac:
1. Tu n'utilises pas AlphaImageLoader pour la transparence PNG d'une manière ou d'une autre, à tout hasard?

2. C'est quoi ce positionnement à tâtons?
position:absolute;
z-index:2;
top:0;
left:0;
width:197px;
height:43px;
top:100%;
left:0;
margin-top:-45px;
Alors qu'il suffit de faire:
position: absolute;
z-index: 2;
bottom: 0;
left: 0;
width: 100%;

Modifié par Florent V. (28 Mar 2008 - 15:02)
Merci pour la réponse...

Oui effectivement, ça aurait été plus simple. J'ai essayé de compenser en essayant d'être le plus clair possible et de ne garder que le code CSS et html nécessaires.

1- Oui j'utilise un pngfix http://homepage.ntlworld.com/bobosola que j'ai ajouté comme suit
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![ endif]-->
. Donc ça ne devrait pas avoir d'effet sur IE7, si ?

2-Désolé pour ce positionnement à tâtons Smiley confused ... Je n'utilise jamais le positionnement autre que float et ordinaire donc loin d'être à l'aise avec le positionnnement absolu... Smiley confus Je vais essayer de m'entrainer Smiley cligne

ça viendrait de l'alphaloader? en enlevant la ligne concernant le pngfix.js ça ne fait pas de changement de comportement :
- sous FF et Opéra : OK
- sous IE6 et 7, la partie de l'image n'est pas cliquable, la partie "legende" est cliquable mais n'est pas identifiée comme un lien (le curseur de la souris passe en mode "Selection de texte" (I) au lieu du pointeur (doigt).

Smiley sweatdrop
À priori le correctif pour le PNG n'a aucun impact sur ce problème (pour IE7).

Peut-être faut-il préciser un z-index pour le lien positionné en relatif?
Et ne pas positionner .item-en-cours en relatif (c'est inutile ici). Ou bien positionner .item-en-cours en relatif, mais pas le lien.
Modifié par Florent V. (28 Mar 2008 - 15:59)
Mes tests :
- précision z-index : 4 pour le lien positionné en relatif -> pas d'effet
- item-en-cours en non-relatif -> pas d'effet
- item-en-cours en relatif et lien en non-relatif -> pas d'effet

Smiley decu
Finalement, avec tous les conseils et pistes données ici par Florent V (encore merci!)
j'ai résolu mon problème.
Pour cela, j'ai modifié le code en déplaçant le lien. Celui-ci n'englobe plus les 3 parties du bloc, mais seulement la miniature image (qui prend toute la largeur et la hauteur du bloc) et ça fonctionne sous IE, FF et opéra.
Le code modifié ci-dessous :

<div class="bloc-items">
<div class="item-en-cours">
            
                <span class="en-cours-logo"><img style="border-width: 0px;" alt="Picto exemple" src="http://forum.alsacreations.com/smilies/biggrin.gif" /></span>
                <span class="en-cours-miniature"><a target="_blank" href="http://www.alsacreations.com/" class="lien-item-en-cours"><img style="border-width: 0px;" src="http://www.hiboox.com/lang-fr/image.php?img=yojjgerh.gif" /></a></span>
                <span class="en-cours-legende"><font class="titreRDV-en-cours">La soirée en détail </font>le 05/03/2008 22:54</span>
        
        </div>
        ...
       ...
        </div>

Encore merci!
Seul problème: ta solution n'est pas accessible. L'intitulé de tes liens est donc l'image, et il faudrait que ton image ait un intitulé correct (via l'attribut alt) correspondant à la destination du lien.

Ou alors: utilise un attribut alt vide (<img alt="" />) et duplique le lien en le plaçant également sur la légende de l'image.
Modifié par Florent V. (31 Mar 2008 - 17:23)
exact... désolé, mon exemple n'était pas complet, j'ai bêtement copier coller le lien fourni par l'hébergeur d'images, zappant le alt...
Je préfère la première. Niveau référencement, la deuxième est plus intéressante, mais suites à un test récent, il apparaitrait que google, lorsqu'il y a plusieurs liens pointant vers une même page, prend le texte de la première balise a qui pointe sur cette page. Donc dans notre cas, ce serait le alt vide... à condition qu'il considère le vide comme un texte...

Encore merci pour cette finition de commentaires! Smiley cligne