Qualche giorno fa sono venuto a conoscenza di una tecnica assolutamente particolare per creare gli sprites CSS senza utilizzare la proprietà background-image. Il concetto di fondo è realmente molto più semplice rispetto a quello che sta alla base della tecnica tradizionale e permette di realizzare menù con rollover e quant’altro in tempi davvero rapidi. Vediamo quindi come si procede:
Innanzitutto dobbiamo realizzare il nostro png allo stesso modo con cui realizzeremmo uno sprite normale quindi prestando massima attenzione e segnandoci le misure che ci occorrono. Nel caso d’esempio ho realizzato un’immagine di 160×100 pixel “divisa” immaginariamente a metà orizzontalmente in modo che a 50px dal bortdo superiore finisca il primo elemento ed inizi il secondo:
A questo punto possiamo passare a realizzare il codice necessario. L’xhtml consisterà in un semplice div contenente il nostro link con l’immagine:
<div class="sprite-css"> <a href="#" title="Sprite CSS senza background-imag"><img src="sprite-test.png" alt="Sprite CSS senza background-image" width="160" height="100" /></a> </div>
Come possiamo vedere l’altezza e la larghezza dichiarate nel tag <img> sono quelle dell’immagine complessiva comprendente entrambi i pulsanti che andremo a “nascondere” via css:
* { margin:0; padding:0; border:0; } .sprite-css a{ display:block; width:160px; height:50px; overflow:hidden; } .sprite-css a:hover img { margin-top: -50px; }
Le prime 5 righe si occupano semplicemente di resettare margini, padding e bordi (per non vedere il bordo intorno alle immagini con link). Successivamente non abbiamo fatto altro che dire di mostrarci solamente i primi 50px di altezza dell’immagine (ricordiamoci che la posizione viene calcolata partendo dall’angolo in alto a sinistra) e di nascondere (overflow:hidden per non mostrare scrollbar) il resto. L’ultima dichiarazione invece ci dice che al passaggio del mouse dovranno essere mostrati i 50px inferiori (e quindi in secondo bottone). Il concetto è molto semplice, lascio a voi ogni sperimentazione e test in attesa dei vostri commenti!
Un generatore di CSS gratuito in italiano
Se tuttavia stiamo invece cercando la soluzione tradizionale, possiamo ricorrere a questo generatore di sprites css in italiano gratuito!