CSS  »  Articoli  »  Effetti con CSS 

Tag list con background e CSS

di: Alessandro Fulciniti     19 Dicembre 2006

I tag sono ormai una realtà sempre più presente su blog, siti di informazione, social networks e siti genericamente identificati come Web2.0. In questo articolo vedremo due possibili modi per abbellire un elenco di tag grazie a background e CSS. Cominciamo subito.

Tag scalabili con angoli arrotondati

Ecco il nostro primo esempio: si tratta di una lista di tag in cui ciascuno ha gli angoli arrotondati. Il markup è semplice, e piuttosto naturale: si tratta infatti di racchiudere l'elenco dei tag all'interno di una lista non ordinata con classe "taglist". Ecco l'HTML:

<ul class="taglist">
<li><a href="#">CSS</a></li>
<li><a href="#">javascript</a></li>
<li><a href="#">web standards</a></li>
</ul>

Prima di passare al CSS, vediamo l'unica immagine utilizzata nell'esempio:

Fig. 1 - Immagine di sfondo per i tag

Immagine di sfondo per i tag

Si tratta di una PNG non trasparente larga 250 pixel a alta 20, che include i due lati arrotondati. Anche se difficilmente ci saranno tag lunghi 250px, per essere sicuri di non avere problemi di resa è bene avere un'immagine sufficientemente lunga. Per quanto riguarda l'altezza, 20px ci dovrebbero consentire una buona resa anche se l'utente ridimensiona il testo. Siamo ora pronti a procedere con il CSS.

Per prima cosa la lista ordinata. Dato che include elementi float, è necessario poterli contenere di modo che il contenuto di pagina successivo non ne subisca l'effetto: useremo quindi la tecnica Float nearly everything di cui ho parlato in questa pagina dell'articolo Float: teoria e pratica. In sostanza, basterà specificare le dimensioni e rendere float la lista. Qualora non fosse possibile assegnare una larghezza in pixel, basterà dichiarare una larghezza pari al 100%. Verranno poi eliminati margini, il padding e il marcatore:

ul.taglist{float: left;width: 400px;
    list-style-type: none;margin: 0;padding: 0}

Ora i list-item: verranno resi float, specificato un padding sinistro di 10px così da predisporre lo spazio per l'immagine di sfondo, di cui si userà la parte sinistra. Viene poi dichiarato un margine destro così da separarli visivamente:

ul.taglist li{float: left;
    margin: 0 2px 7px 0;padding: 0 0 0 10px;
    background: #EFEFEF url(tagbk.png) no-repeat top left}

Infine i link: anch'essi vengono resi float, viene eliminata la sottolineatura, specificato un padding destro di 10px così da poter lasciar spazio all'immagine di sfondo di cui si userà la parte destra. Vengono poi assegnati un'altezza e un'altezza di linea di 20px, ovvero l'altezza dell'immagine. Per evitare che il testo all'interno dei link si disponga su più righe nel caso i tag siano parole composte, è indispensabile la dichiarazione white-space: nowrap che evita il ritorno a capo. Per lo stato :hover, verrà cambiato semplicemente il colore del testo. Ecco quindi le due regole relative:

ul.taglist a{float: left;text-decoration: none;
    height: 20px;line-height: 20px;
    padding: 0 10px 0 0;background: url(tagbk.png) no-repeat top right;
    color: #444;white-space: nowrap}

ul.taglist a:hover{color:#010159}

Rendere float list-item e link ci permette di avere ciascun tag auto-adattante in larghezza: il punto essenziale è l'uso del padding e dello sfondo sui due elementi.

Il nostro esempio è così ultimato: da notare che il testo dell'esempio è ridimensionabile, e dovrebbe garantire una buona resa anche con font size grande. Se vorrete usare un font-size in pixel, il mio consiglio è di specificare una dimensione di almeno 12 pixel.

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