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

Navigazione di paginazione con i CSS

Formattare con i CSS un fondamentale elemento di molte interfacce web
Formattare con i CSS un fondamentale elemento di molte interfacce web
Link copiato negli appunti

In questo articolo tratteremo la personalizzazione di un elemento
piuttosto comune in alcune tipologie di siti web, ma forse troppo spesso trascurato:
la navigazione di paginazione, che viene utilizzato per esempio nelle pagine dei motori di
ricerca, in siti e-commerce, forum. Dopo alcuni consigli di carattere generale, vedremo
un possibile esempio di personalizzazione mediante i fogli di stile: ecco un'anteprima
dell'esempio.

I CSS offrono come sempre moltissime possibilità di personalizzazione di elementi
di pagine web, ma in quanto alla navigazione di paginazione ci sono tre punti fermi
che andrebbero tenuti sempre presente:

  • Il link corrispondente alla pagina corrente dovrebbe essere ben distinguibile dagli altri
  • I link delle pagine visitate andrebbero differenziati da quelli ancora da visitare
  • Essendo i link dei numeri potrebbero essere poco esplicativi per l'utente: andrebbero quindi
    accompagnati da un title del tipo "vai alla pagina X".

Come nello screenshot qui sotto, che rappresenta la navigazione di paginazione
dell'esempio con alcune pagine visitate:

Fig.1: Esempio di paginazione

Esempio di paginazione

La pagina 4 è la pagina corrente, le pagine da 1 a 6 sono gi‡ state visitate, il link
alla pagina 7 è in stato :hover e le pagine 8, 9 e 10 sono ancora da visitare. Ma non
indugiamo oltre e procediamo con l'esempio.

Il markup

Ci sono molte possibile scelte per la marcatura di una navigazione di paginazione,
ma trattandosi di un elenco di link, la scelta migliore è forse una lista. Tra liste
ordinate e non, la scelta ricade sulla seconda in quanto in assenza di fogli di stile
la numerazione delle liste ordinate potrebbe generare ridondanza e/o confusione nell'utente.
Ecco quindi il codice HTML dell'esempio:

<ul id="pagination">
    <li><a href="#" title="vai a pagina 1">1</a></li>
    <li><a href="#" title="vai a pagina 2">2</a></li>
    <li><a href="#" title="vai a pagina 3">3</a></li>
    <li id="currentpage"><a href="#" title="vai a pagina 4">4</a></li>
    <li><a href="#" title="vai a pagina 5">5</a></li>
    <li><a href="#" title="vai a pagina 6">6</a></li>
    <li><a href="#" title="vai a pagina 7">7</a></li>
    <li><a href="#" title="vai a pagina 8">8</a></li>
    <li><a href="#" title="vai a pagina 9">9</a></li>
    <li><a href="#" title="vai a pagina 10">10</a></li>
</ul>

Da notare che l'ipotetica pagina corrente dell'esempio, ovverola pagina 4, ha il corrispondente
list-item a cui viene assegnato un id="currentpage" così da permettere la differenziazione
dagli altri link.

Il CSS

Siamo quindi arrivati alla parte centrale dell'esempio, ovvero il foglio di stile.
Per prima cosa definiamo le proprietà per la lista; viene assegnato un font di 12px, un margine superiore e
inferiore, viene eliminato il padding e il marcatore di default e viene infine centrato il testo:

ul#pagination{
    font:12px Arial,sans-serif;
    margin: 1em 0;padding: 0;
    list-style: none;text-align: center}

Ora i list-item; per poterli affiancare verranno resi inline, e spaziati ulteriormente
attraverso un margine destro:

ul#pagination li{
    display: inline;margin-right: 0.5em}

A questo punto i link; verrà eliminata la sottolineatura, assegnato un bordo, un padding laterale di 3 pixel,
colore di sfondo e testo:

ul#pagination a{text-decoration: none;
    border: 1px solid #1258CC;padding: 0 3px;
    background: #3C86FF;color: #FFF}

Seguono quindi i link visitati, che saranno resi con sfondo grigio e con colori di testo,
sfondo e bordi differenti da quelli definiti in precedenza:

ul#pagination a:visited{
    background: #EEE;color: #003EA5;
    border-color: #89B5FF}

Ora la fase :hover. Ricordo a tale proposito che la successione delle regole sugli stati dei
link nei CSS dovrebbe essere per una corretta resa :link, :visited, :hover e :active.
In questo caso definiamo solo lo stato visitato e hover, ma devono comunque rispettare questo ordine. Lo sfondo
dei link :hover verrà reso bianco e il testo blue scuro:

ul#pagination a:hover{
    background: #FFF;color: #003EA5}

Infine la regola relativa al link che punta alla pagina corrente, che risulterà più specifica
di quelle viste in precedenza dato che è composta da due id anziché uno. Verrà eliminato il bordo,
ripristinato il colore di sfondo, assegnato un testo nero e il cursore di default, dato che trattandosi
del link alla pagina corrente non è indispensabile che indichi una transizione di pagina. Risulterà
per l'utente quindi come testo normale, ed eviterà di cliccarci sopra dato che non mostra il tipico
cursore "a manina". Ecco la regola:

ul#pagination li#currentpage a{
    border: 0px;background: #FFF;
    color: #000;cursor: default}

Il nostro esempio è così ultimato. È stato testato con successo in
Internet Explorer 5.5, 6 e 7, Opera, Firefox e Safari. Su IE5 la resa non è perfetta, ma è comunque
usabile. Il codice HTML dell'esempio, con il CSS incorporato, è disponibile per il download. Alla prossima.

Ti consigliamo anche