di: Alessandro Fulciniti 21 Aprile 2009
Anche in questo caso l'idea del fast CSS rollover si può estendere su un numero di stati superiori a due: quello che ho notato è che però alcuni browser non supportano bene l'uso congiunto di keyword e pixel per il posizionamento delle immagini. Una possibile soluzione potrebbe essere quella di utilizzare due immagini di sfondo e combinare due stati per ogni immagine, assicurandoci però che il menu in stato di riposo sfrutti entrambe le immagini. Una sorta di mix tra rollover disgiunto e fast CSS rollover quindi. Una possibile alternativa è realizzare link totalmente grafici, che includano quindi anche il testo nell'immagine stessa. Sarà il prossimo argomento.
Il fast CSS rollover per la sua natura grafica si presta benissimo a ulteriori possibilità, e combinato con l'image replacement consente di rimpiazzare testo con elementi grafici che dispongano di un rollover instantaneo. Per quanto riguarda l'image replacement, ecco le risorse disponibili qui su HTML.it:
Vediamo ora il nostro prossimo esempio: si tratta di un header grafico con image replacement e fast CSS rollover. Per prima cosa vediamo il markup:
<div id="header">
<h1>
<a href="#"><span></span>CSS Rollover</a>
</h1>
</div>
Si tratta di un titolo h1 che contiene un link, il cui testo è preceduto da uno span vuoto.
Il motivo di questo elemento aggiuntivo, che non influenza in alcun modo il contenuto della pagina, è perché
useremo la Cover-up span.
Ma prima di addentrarci nel CSS, ecco l'unica immagine che compone l'esempio:
Figura 8 - Immagine per il logo
Per quanto riguarda il CSS, si tratta in sostanza di nascondere visivamente il testo, rimpiazzarlo con la grafica e intervenire con il background-position nella fase :hover del link. Ecco il CSS per intero:
div#header{position: relative;height: 120px;background: #282828}
div#header h1{font-size: 10px;margin: 0}
div#header h1 a{position: absolute;top: 30px;left: 15px;
width: 450px;height: 60px;color: #666}
div#header h1 a span{position: absolute;width: 100%;height: 100%;
cursor: pointer;background: url(header.png) no-repeat}
div#header h1 a:hover span{background-position: 0 -60px}
Il nostro header viene posizionato relativamente così da consentire il posizionamento assoluto
al suo interno, mentre per il titolo imposteremo un font-size piccolo oltre che annullare i margini.
Il link verrà quindi posizionato assolutamente di grandezza pari al logo. Lo span infine
verrà posizionato assolutamente all'interno del link, con le sue stesse
dimensioni così da coprirlo per intero: verrà attribuita infatti l'immagine di sfondo, la cui
background-position sarà modificata per lo stato :hover del link.
Ovviamente fast CSS rollover e Image Replacement possono essere applicati su link multipli e menu: un esempio notevole in questo senso è il sito della Apple, che implementa un menu totalmente grafico a quattro stati con una sola immagine.
In sostanza si tratta di dichiarare un'unica immagine di sfondo per tutti i link, per poi specificare per ciascuno di esso le coordinate background-position per i vari stati. La tecnica è stata introdotta diverse volte qui su HTML.it e mi limito a presentare alcuni approfondimenti:
L'ultimo articolo presenta inoltre un'interessante sperimentazione per ottenere transizioni con opacità variabile grazie a JQuery.
Abbiamo visto in questo articolo gli esempi più rappresentativi di rollover grafico con i CSS: (header, bottoni e navigazione) ripercorrendo brevemente le varie strategie implementative. Gli esempi qui visti hanno una buona compatibilità: sono stati infatti testati su IE dalla versione 6 alla 8, oltre che su Opera, Firefox, Safari e Chrome. Codice, immagini ed esempi sono disponibili per il download. Alla prossima.
Responsive Desing, la guidaProgettare siti da fruire su dispositivi diversi è imprescindibile... |
Guida CSS3Scoprire e usare al meglio tutte le novità dell'ultima versione dei... |
Guida CSS Tecniche essenzialiTesto, immagini, layout, form, liste, tabelle: soluzioni pronte per... |
Ogni mercoledì, direttamente nella tua e-mail: guide, articoli, tutorial, FAQ e approfondimenti tecnici su CSS e Web Design.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |