ci ho lavorato un po' e ti ho un po' sistemato il css anche se non ho ancora trovato il modo di annullarti lo spazio tra le tre voci della lista allineate orizzontalmente: si tratterà di sovrapporre in qualche modo le tre liste di secondo livello, forse si può fare con il position al posto del float, mah, bisognerà studiarci ancora su!
codice:
* {
margin: 0;
padding: 0;
}
ul {
line-height: 100%;
list-style: none;
}
a {
display: block;
text-decoration: none;
}
ul#nav, ul#nav > li { float: left; }
ul#nav li ul {
visibility: hidden;
border: 1px solid;
background-color: orange;
}
ul#nav a:hover { background-color: cyan; }
ul#nav li:hover ul { visibility: visible; }
ul#nav li ul li a { height: 0; }
ul#nav li:hover ul li a { height: auto; }
ul#nav li:hover ul li a:hover { background-color: yellow; }
non è una cosa fatta bene, comunque quel risultato lo puoi ottenere variando i margini sinistri dei tre elementi lista:
1º[*]
2º <li style="margin-left: -9px;">
3º <li style="margin-left: -26px;">
ah, l'ho provato solo su Firefox, e funziona, ma per Explorer e Opera bisognerà lavorarci!