Originariamente inviato da Mich_
Ci sono errori logici nel codice CSS, che vanno corretti, altrimenti la visualizzazione in qualche browser serbera` sorprese.
Fondamentalmente non puoi inserire un elemento blocco dentro un elemento inline. Questo comporta modifiche sia nel codice HTML che nel CSS.
1. Dentro gli <a> non ci possono stare dei <div>. Trasformali in <span>, oppure usa direttamente il tag <a> per dare il colore.
2. I tuoi[*] non possono essere inline. Per affiancarli devi usare il float.
Poi hai dimenticato di dare dimensioni ad una serie di elementi:
- al <ul> (ti basta definire 100% sia a width che a height, dato che le dimensioni sono gia` nel #menu)
- ai[*] - e` opportuno nel tuo caso (non necessario, ma io non rischierei una brutta figura in qualche browser
Nel tuo CSS ci sono anche dei selettori inutili, che creano confusione: nel codice HTML non ci sono class="giallo" ne` altri colori, quindi i selettori che contengono .colore non servono (non vengono comunque utilizzati dal browser.
Una volta sistemate queste cose, verifica di avere nuovamente la visualizzazione corretta (nei vari passaggi puo` essere che qualcosa vada fuori squadra, ma se parti dal risultato il codice non verra` mai fatto bene, e le sorprese sono in agguato).
E quindi puoi implementare il rollover.
Supponendo una struttura html del tipo:
codice:
<div id="menu">
<ul>[*][*][*][*][/list]
</div>
Se vuoi un rollover dello stesso colore per tutti, ti basta aggiungere:
#menu a:hover {
background-image: url(../images/bianco.jpg);
}
Se invece ciascun colore deve avere un rollover diverso:
a#rosso:hover {
background-image: url(../images/rossohover.jpg);
}
ecc.
Nota che se usi background-image, non vedrai il background-color, in quanto l'immagine di sfondo "sta sopra" il colore di sfondo, e quindi il rollover andra` realizzato tramite una nuova immagine.