Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Star-rater con i CSS

Realizziamo con i CSS questo piccolo widget decisamente accattivante.
Realizziamo con i CSS questo piccolo widget decisamente accattivante.
Link copiato negli appunti

Quella dello star-rater con i CSS è una tecnica molto interessante che ho segnalato un po' di tempo fa sul blog. Nel post ho scritto in merito: il CSS è semplice, anche se un po' lunghetto.. Questa considerazione mi ha spinto a cercare una soluzione alternativa, che mi è stata suggerita da questo piccolo esempio che ho trovato su
del.icio.us.

Ho pensato così di preparare un post per presentare la versione che realizzato. Vediamo subito l'esempio.

Per quanto riguarda il codice HTML si tratta di una semplice lista non ordinata, in cui viene assegnato un id alla lista e un id a ciascuno dei list-item:


<ul id="rater">
<li id="r1"><a href="#1">1</a></li>
<li id="r2"><a href="#2">2</a></li>
<li id="r3"><a href="#3">3</a></li>
<li id="r4"><a href="#4">4</a></li>
<li id="r5"><a href="#5">5</a></li>
</ul>

Credo che tutti sappiate come rende una lista senza CSS. Vedremo ora come trasformarla
in uno star-rater una sola immagine

Per il rollover, è stata usata una variante del fast CSS Rollover esempio
e l'uso dello z-index. Procediamo quindi con il CSS. Per prima cosa rimuoviamo margini,
padding e marcatore da lista e list-item:


ul#rater,ul#rater li{margin: 0;padding: 0;list-style: none}

Ora la lista: assegneremo le dimensioni, il font, l'immagine di sfondo che mostrerà  le stelle in stato normale e la dichiareremo position:relative


ul#rater{position: relative;width: 80px;height: 32px;
    background: #FFF url(stars.png);
    font: 10px Arial,sans-serif}

I list item verranno posizionati assolutamente all'interno della lista nell'angolo in alto a sinistra e ciascuno di essi avrà  un'altezza di 32 pixels:


ul#rater li{position: absolute;top: 0; left: 0;height: 32px}

Arriviamo così alla parte più concettuale dell'esempio. Ciascun list-item avrà  una larghezza tale da contenere il numero di stelle che indica: il primo quindi sarà  largo 16 pixel, il secondo 32 e così via... fino all'ultimo che sarà  largo quanto l'intera lista (80px). In questo modo avremo i list-item
sovrapposti, ed è importante quindi stabilire una sorta di ordine spaziale attraverso lo z-index


li#r1{width: 16px;z-index: 5}
li#r2{width: 32px;z-index: 4}
li#r3{width: 48px;z-index: 3}
li#r4{width: 64px;z-index: 2}
li#r5{width: 80px;z-index: 1}

I link al loro interno saranno resi display:block z-index

Se passiamo il mouse sulla prima stella, lo avremo infatti in realtà  passato su tutte e cinque: lo z-index

In maniera analoga, il mouse in corrispondenza della terza stella si dispone in realtà  sulla terza, la quarta e la quinta. Il list-item
con id="r3" z-index z-index
lungo l'asse "z", ovvero quello perpendicolare allo schermo, dando una sorta di tridimensionalità 
alla pagina.

Vediamo quindi le regole sui link: oltre a dichiararli display:block


ul#rater a{display: block;padding: 16px 5px 0 0;

    text-align: right;text-decoration: none;color: #ccc}

Manca solo il rollover: al passaggio del mouse assegneremo ai link la parte inferiore dell'immagine. L'effetto si ottiene specificando per l'immagine una background-position


ul#rater a:hover{color: #675CFF;

    background: #FFF url(stars.png) no-repeat 0 -32px}

L'esempio z-index

Ti consigliamo anche