CSS  »  Articoli  »  Effetti con CSS 

Accordion in stile Apple con i CSS

di: Alessandro Fulciniti     21 Ottobre 2008

Siamo ora arrivati alla parte principale del nostro menu accordion in stile Apple, ovvero il CSS. Il principio che sta alla base dell'esempio è semplice: si tratta di stabilire un'altezza fissa per i link del menu pari a 25px (ovvero l'altezza di ciascun elemento strong) per poi ripristinare la loro altezza naturale in fase :hover. Ecco il CSS per intero:

ul#accordion, ul#accordion li{margin: 0;padding: 0;list-style: none}
ul#accordion{width: 175px;border: 1px solid #9A9A9A;font-size: 12px}
ul#accordion a{display: block;height: 25px;overflow: hidden;
    padding-left: 10px;text-decoration: none;color: #333}
ul#accordion strong{display: block;height: 25px;line-height: 25px;
    margin-left: -10px;padding-left: 10px;color: #FFF;
    background: #7E7E7E url(bk.png) repeat-x top}
ul#accordion a:hover{height: auto;overflow: auto}
ul#accordion a:hover strong{background:url(bk.png) repeat-x bottom}

Vediamo brevemente il CSS del menu e i suoi tratti essenziali. Dopo aver eliminato margini, padding e marcatore da lista e list-item, si è assegnata una larghezza pari a 175 pixel e un bordo fine attorno al menu. I link vengono resi block-level, con altezza pari a 25 px e overflow impostato su hidden. Ciò fa si che dei link in stato normale venga mostrato solo l'elemento strong, anch'esso alto 25px. Quest'ultimo ha anche un line-height impostato, così da consentire la centratura verticale del testo.

Vale la pena soffermarsi un attimo sull'utilizzo del padding sui link e sugli elementi strong. Per i link viene specificato un padding sinistro di 10px, che vorremo poter recuperare sugli strong così da poter coprire tutta la larghezza del menu. Ci vengono in soccorso i margini negativi, o per l'esattezza i margini espandibili: attribuendo un margine sinistro negativo di 10px sugli strong, siamo infatti in grado di espanderli, per poi ripristinare lo spazio bianco attraverso un padding sinistro di pari valore.

Con la penulitima regola, in fase :hover i link assumono la loro altezza naturale, così da mostrare il rimanente testo che non rientra negli strong. Nella fase :hover dei link, infine, viene ripetuta orizzontalmente per gli elementi strong la porzione inferiore dell'immagine di sfondo anzichè quella superiore che viene mostrata a riposo, dando così un bell'effetto rollover.

Queste in breve le fasi di sviluppo del CSS, che si presenta semplice e leggero: sono bastate infatti appena sei regole. Buono il supporto cross-browser dell'esempio: è stato testato con successo su Internet Explorer dalla versione 5.5 alla 8, oltre che sulle ultime versioni di Firefox, Safari, Opera e Google Chrome. Codice e immagini sono disponibili per il download. Alla prossima.

Guide CSS

Responsive Desing, la guida

Progettare siti da fruire su dispositivi diversi è imprescindibile...

Guida CSS3

Scoprire e usare al meglio tutte le novità dell'ultima versione dei...

Guida CSS Tecniche essenziali

Testo, immagini, layout, form, liste, tabelle: soluzioni pronte per...

Altre guide

Newsletter @CSS

Ogni mercoledì, direttamente nella tua e-mail: guide, articoli, tutorial, FAQ e approfondimenti tecnici su CSS e Web Design.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti