Bonjour,
J'ai créer un menu constitué de différentes listes imbriquées de liens.
J'aimerais remplacer les éléments span de certains de ces liens par une image.
J'utilise donc une technique bien connue pour ne plus afficher le contenu des span tout en restant accessible:
Malheureusement, cette définition CSS génére un espace non désiré sous IE. Comme l'utilisation de display: none, donne le même résultat, je pense que le problème survient dès que les spans sortent du flux.
J'ai adapté mon code afin que vous puissiez observer le problème.
Le premier lien permet de sortir les spans du flux ou de les y replacer.
Je vous donne aussi le code de cette page:
J'espère que vous pourrez me proposer une solution.
Merci pour votre aide.
Modifié par Mathieu_vd (14 Aug 2006 - 19:08)
J'ai créer un menu constitué de différentes listes imbriquées de liens.
J'aimerais remplacer les éléments span de certains de ces liens par une image.
J'utilise donc une technique bien connue pour ne plus afficher le contenu des span tout en restant accessible:
span {
position: absolute;
left: -9999px;
}
Malheureusement, cette définition CSS génére un espace non désiré sous IE. Comme l'utilisation de display: none, donne le même résultat, je pense que le problème survient dès que les spans sortent du flux.
J'ai adapté mon code afin que vous puissiez observer le problème.
Le premier lien permet de sortir les spans du flux ou de les y replacer.
Je vous donne aussi le code de cette page:
<!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" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>problème menu</title>
<style type="text/css">
* {
padding: 0;
margin: 0;
}
p {
margin: 5px 0;
font-size: x-large;
}
#menu1 {
width: 96px;
}
ul {
list-style: none;
}
.section {
display: block;
height: 22px;
background-color: #FF0202;
padding-left: 10px;
}
#menu1 a {
text-decoration: none;
color: #FFF;
}
#menu1 ul li a {
font-size: 18px;
text-align: right;
height: 22px;
display: block;
background: #666;
padding-right: 5px;
}
#menu1 ul li a:hover {
background: #999;
}
#menu1 .section span {
left: -9999px;
}
#menu1 .section .hiddenText {
position: absolute;
}
</style>
<script type="text/javascript">
function changePositionValue(){
var allspan = document.getElementsByTagName("span");
for (var j=0; j<allspan.length; ++j){
if (allspan[j].className=="hiddenText") {
allspan[j].className="";
} else {
allspan[j].className="hiddenText";
}
}
}
</script>
</head>
<body>
<p>Sous IE, lorsque les éléments span sortent du flux, un espace est créé</p>
<p><a href="javascript:changePositionValue()">Retirer ou replacer les éléments span dans le flux</a></p>
<ul id="menu1">
<li><a href="" id="sports" class="section" title="Sports"><span>SPAN1</span></a>
<ul>
<li><a href="">sous_rub1</a></li>
<li><a href="">sous_rub2</a></li>
<li><a href="">sous_rub3</a></li>
<li><a href="">sous_rub4</a></li>
<li><a href="">sous_rub5</a></li>
</ul>
</li>
<li>
<a href="" id="infos" class="section" title="Infos"><span>SPAN2</span></a>
<ul>
<li><a href="">sous_rub1</a></li>
<li><a href="">sous_rub2</a></li>
<li><a href="">sous_rub3</a></li>
<li><a href="">sous_rub4</a></li>
<li><a href="">sous_rub5</a></li>
</ul>
</li>
<li>
<a href="" id="culture" class="section" title="Culture"><span>SPAN3</span></a>
<ul>
<li><a href="">sous_rub1</a></li>
<li><a href="">sous_rub2</a></li>
<li><a href="">sous_rub3</a></li>
<li><a href="">sous_rub4</a></li>
<li><a href="">sous_rub5</a></li>
</ul>
</li>
</ul>
</body>
</html>
J'espère que vous pourrez me proposer une solution.
Merci pour votre aide.
Modifié par Mathieu_vd (14 Aug 2006 - 19:08)