Internet explorer
Voici les différentes façons d’avoir un menu horizontal à 2 niveaux compatible avec Internet explorer.code HTML :
- Menu 1
- Menu 2
code CSS :
#navigation ul {
list-style-type:none;
}
#navigation li{
float:left;
position: relative; /* ATTENTION TRES IMPORTANT */
}
#navigation a {
display:block;
float:left;
width:300px; /* largeur de chaque entrée dans le menu */
height:40px;
text-decoration:none;
}
#navigation ol {
display: none;
list-style-type:none;
}
#navigation ol {
position: absolute; /* se positionne par rapport à élément pére positionné : #navigation li */
top:40px;
left:0;
display: block;
z-index:1;
}
#navigation ol li,#navigation ol a{
float:none;
}
Avec un minimum de code en javascript
Voir sur le site du zéroExemple :
Voir le code :
placer ce code javascript en début de programme
sfHover = function() {
var sfEls = document.getElementById("navigation").getElementsByTagName("li");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
La partie CSS :
#navigation li.sfhover /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
{
left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
}
#menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
{
left: auto; /* Repositionnement normal */
min-height: 0; /* Corrige un bug sous IE */
}