Bonjour,
Je vais tenter d'expliquer ce que je souhaite faire, ce que j'ai fait, et ce que je crois qui ne fonctionne pas.
Première chose, vous pouvez voir un exemple de ce que je fais tout en bas du message. Attention, ça ne fonctionne bien que sous FF et IE. En effet Opéra bugue pas mal.
Mon idée est de faire un menu uniquement en image (pas de texte). Chaque item du menu est constitué d'une bordure, et d'une image centrale qui réagit au survol. Voilà pour la partie simple. Maintenant au niveau des contraintes de mise en forme:
-les items (ici des <li>) doivent être de type inline, afin de pouvoir leur appliquer un text-align: center. Le positionnement est relative, car c'est la référence de la balise <a>.
-le roll-over est classique dans l'idée: une balise <a>, un background, et on utilise a:hover. Particularité: la balise est vide (sans texte). Sa taille est fixée. Son placement est géré par un positionnement en absolute (pour le retirer du flux).
-je souhaite pouvoir régler l'espacement entre les différents items par des margin.
J'espère que c'est assez clair?
Bon, ça marche super sous Firefox et IE, par contre sous Opera, j'ai l'impression que la "zone cliquable" du lien n'est pas superposé avec le background dessiné. C'est encore plus visible si on joue sur le text-align: left ça marche presque, et right plus du tout. Enfin si on passe le positionnement de absolute à relative ça marche bien, mais par contre le design est tout cassé... Problème avec le positionnement absolu?
Si vous avez des idées sur comment régler ça, ou au moins pourquoi ça ne peut pas marcher?
Merci d'avance pour vos remarques, ça fait un moment que je bosse là dessus et je n'avance plus.
Medou.
PS: Le code utilisé:
Et l'image qui va avec (à renommer en bordure_simple.png):
Modifié par Medou (11 Feb 2008 - 20:44)
Je vais tenter d'expliquer ce que je souhaite faire, ce que j'ai fait, et ce que je crois qui ne fonctionne pas.
Première chose, vous pouvez voir un exemple de ce que je fais tout en bas du message. Attention, ça ne fonctionne bien que sous FF et IE. En effet Opéra bugue pas mal.
Mon idée est de faire un menu uniquement en image (pas de texte). Chaque item du menu est constitué d'une bordure, et d'une image centrale qui réagit au survol. Voilà pour la partie simple. Maintenant au niveau des contraintes de mise en forme:
-les items (ici des <li>) doivent être de type inline, afin de pouvoir leur appliquer un text-align: center. Le positionnement est relative, car c'est la référence de la balise <a>.
-le roll-over est classique dans l'idée: une balise <a>, un background, et on utilise a:hover. Particularité: la balise est vide (sans texte). Sa taille est fixée. Son placement est géré par un positionnement en absolute (pour le retirer du flux).
-je souhaite pouvoir régler l'espacement entre les différents items par des margin.
J'espère que c'est assez clair?
Bon, ça marche super sous Firefox et IE, par contre sous Opera, j'ai l'impression que la "zone cliquable" du lien n'est pas superposé avec le background dessiné. C'est encore plus visible si on joue sur le text-align: left ça marche presque, et right plus du tout. Enfin si on passe le positionnement de absolute à relative ça marche bien, mais par contre le design est tout cassé... Problème avec le positionnement absolu?
Si vous avez des idées sur comment régler ça, ou au moins pourquoi ça ne peut pas marcher?
Merci d'avance pour vos remarques, ça fait un moment que je bosse là dessus et je n'avance plus.
Medou.
PS: Le code utilisé:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1;" />
<title>Test</title>
<style type="text/css">
ul{
text-align: center;
}
li.bordure{
display: inline;
position: relative;
vertical-align: top;
}
img{
width: 322px;
height: 317px;
vertical-align: bottom;
}
img, a.fond{
margin: 40px 10px 30px 10px;
}
a.fond{
height: 290px;
width: 290px;
position: absolute;
top: 5px;
left: 5px;
background: red;
}
a.fond:hover{
background: yellow;
}
</style>
</head>
<body>
<ul>
<li class="bordure"><img src="bordure_simple.png" /><a href="#" class="fond"></a></li>
<li class="bordure"><img src="bordure_simple.png" /><a href="#" class="fond"></a></li>
<li class="bordure"><img src="bordure_simple.png" /><a href="#" class="fond"></a></li>
</ul>
</body>
</html>
Et l'image qui va avec (à renommer en bordure_simple.png):
Modifié par Medou (11 Feb 2008 - 20:44)