Menu déroulant fixe ?

pat734

Membre actif
4 Juin 2007
191
4
www.restaurationdemeubles.com
Bonjour.
Je suis en train d'installer un menu déroulant sur mon site. Lorsque la fenêtre de navigation est réduite les différents menus se superposent au lieu de rester bien horizontal. Comme sur la photo ci-dessous :



Comment puis je résoudre ce problème ?

Voici tout mon code :

Script placé entre les balises <head> et </head>

<script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}
//-->
</script>

Code css :

body {
margin: 0;
padding: 0;
background: black;
font: 80% verdana, arial, sans-serif;
}
dl, dt, dd, ul, li {
margin: 0;
padding: 0;
list-style-type: none;
}
#menu {
position: absolute; /* placement du menu, à modifier selon vos besoins */
top: 160;
left: 0;
z-index:100;
width: 100%; /* correction pour Opera */
}
#menu dl {
float: left;
width: 12em;
}
#menu dt {
color: white;
cursor: pointer;
text-align: center;
font-weight: bold;
background-image: url(images/1.jpg);
border: 1px solid gray;
margin: 1px;
}
#menu dd {
display: none;
border: 1px solid gray;
}
#menu li {
text-align: center;
background-image: url(images/1.jpg);
}
#menu li a, #menu dt a {
color: white;
text-decoration: none;
display: block;
height: 100%;
border: 0 none;
}
#menu li a:hover, #menu li a:focus, #menu dt a:hover, #menu dt a:focus {
background-image: url(images/1.jpg);
}
#site {
position: absolute;
z-index: 1;
top : 70px;
left : 10px;
color: #000;
background-color: #ddd;
padding: 5px;
border: 1px solid gray;
}

Code html :

<div id="menu">
<dl>

<dt onmouseover="javascript:montre();"><a href="" title="Retour à l'accueil">Accueil</a></dt>
</dl>

<dl>
<dt onmouseover="javascript:montre('smenu1');">Menu 1</dt>

<dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre('');">
<ul>
<li><a href="#">Sous-Menu 1.1</a></li>
<li><a href="#">Sous-Menu 1.2</a></li>
<li><a href="#">Sous-Menu 1.3</a></li>
<li><a href="#">Sous-Menu 1.4</a></li>
<li><a href="#">Sous-Menu 1.5</a></li>
<li><a href="#">Sous-Menu 1.6</a></li>
</ul>
</dd>
</dl>

Merci pour votre aide.
 
Bonjour.

Si je peux me permettre gloup gloup, ton lien date de 2006 et c'est une pure horreur de javascript.

Ce qu'ils font en je ne sais combien de lignes en se prenant la tête avec les events IE différents des autres, ça se fait en dix minute avec prototype.js, et en seulement quelques lignes.

D'autre part ce tuto à l'air de fonctionner, oui, mais en fait non.
Par exemple ce menu ne fonctionne pas si il y a une rubrique mère qui n'a pas de sous-rubriques...
 
Il est surtout basé sur l'accessibilité (navigation au clavier, les items cachés sont également accessibles, etc) mais je ne l'ai jamais utilisé. Mais tu as raison : avec les libraires javascript actuelles, il y a sûrement moyen de faire plus léger. ;)