ciao a tutti.
non so come risolvere questo problema:
ho fatto un menu di navigazione verticale con dei sottomenu usando delle liste annidate.
I sottomenu si aprono quando si clicca su una voce di menu principale (grazie a un javascript che rende visibile un div) e le altre voci principali scorrono in basso:
Menu chiuso:
Menu1
Menu2
Menu3
Menu aperto:
Menu1
- Menu1a
- Menu1b
Menu2
Menu3
Tutto ok con firefox e IE6, ma con IE7 i sottomenu si sovrappongono alle voci principali sottostanti, che non scorrono verso il basso, come se il div col sottomenu avesse un posizionamento assoluto.
Questo è il codice html:
Questo è il css:codice:<ul class="menu">[*]<a onClick="toggleBox('menu0');" value="Show Div">Company Profile</a> <div id="menu0" style="display: none;"> <ul class="sottomenu">[*]Mission[*]Servizi[/list] </div>[*]<a onClick="toggleBox('menu1');" value="Show Div">Area Riservata</a>[/list]
Questo è il javascript:codice:.menu { position:relative; text-align:left; } .menu ul { list-style-type:none; display:block;} .menu li {position:relative; display:block; height:36px; line-height:36px; width:160px; list-style-type:none;} .sottomenu { font-size:10px; font-weight:bold; position:relative; text-decoration:none; text-align:left; margin:0; padding:0; color:#7F2201;} .sottomenu ul {list-style-type:none; display:block;} .sottomenu li {display:block; height:20px; line-height:100%; width:140px;}
ho provato a togliere il div che racchiude i sottomenu e ad applicare il javascript direttamente nella ul del sottomenu, ma niente.codice:function toggleBox(menu) { if(document.layers) //NN4+ { currStato = document.layers[menu].display; Stato = (currStato == "block" ? "none" : "block"); document.layers[menu].display = Stato; } else if(document.getElementById) //gecko(NN6) + IE 5+ { for(k=0;k<4;k++) { //k<__ ci va il num totale dei div var currDiv = "menu" + k; var obj = document.getElementById(currDiv); obj.style.display = "none"; } var obj = document.getElementById(menu); currStato = obj.style.display; Stato = (currStato == "block" ? "none" : "block"); obj.style.display = Stato; } else if(document.all) // IE 4 { currStato = document.all[menu].style.display; Stato = (currStato == "block" ? "none" : "block"); document.all[menu].style.display = Stato; } }
non riesco a capire dove sbaglio![]()
![]()
qualcuno sa aiutarmi?
grazie!

Rispondi quotando