back to top

CSS: stilizzare liste e tabelle

In questa lezione della nostra Guida CSS vedremo come stilizzare liste e tabelle.

Stilizzare le liste

Attraverso i CSS รจ possibile agire sulla presentazione delle liste, cioรจ sullโ€™aspetto di liste ordinate (<ol>) e non ordinate (<ul>). A tal fine i fogli di stile ci consentono di fare ricorso a quattro proprietร  (tre specifiche + una con sintassi compatta).

Pubblicitร 
  • list-style
  • list-style-image
  • list-style-position
  • list-style-type

Anche queste proprietร , come quelle relative ai blocchi di testo, vengono ereditate.

Passiamole in rassegna una ad una.

list-style-image

Questa proprietร  permette di utilizzare unโ€™immagine al posto del marcatore tradizionale. Lโ€™immagine viene specificata mediante una URL relativa o assoluta, esattamente come abbiamo visto per la proprietร  background-image. Vediamo un esempio:

ul { list-style-image: url('icona.png'); }

Nel nostro esempio abbiamo applicato la proprietร  in esame al tag <ul> ma avremmo potuto applicarla direttamente al list-item in questo modo:

li.sfera { list-style-image: url('sfera.png'); }
li.cubo { list-style-image: url('cubo.png'); }

Oltre alla URL dellโ€™immagine da utilizzare come marcatore, questa proprietร  ammette il valore none che indica al browser di utilizzare il marcatore di default.

list-style-position

Questa proprietร  permette di impostare la posizione del marcatore rispetto al testo. Ammette solo due valori: "outside" (valore di default) e "inside".

list-style-type

Questa proprietร  definisce il tipo di marcatore da utilizzare per una data lista. I valori possibili sono tantissimi, elenchiamo di seguito i piรน comuni suddividendoli logicamente in due gruppi:

Liste non ordinate:

  • disc โ€“ (valore di default) corrisponde ad un pallino (il colore puรฒ essere impostato mediante la proprietร  color);
  • circle โ€“ corrisponde ad cerchietto vuoto;
  • square โ€“ corrisponde ad un quadrattino;

Liste ordinate:

  • decimal โ€“ numerazione tradizionale (1,2,3,โ€ฆ);
  • lower-roman โ€“ numerazione romana in minuscolo (i,ii,iii,iv,โ€ฆ);
  • upper-roman โ€“ numerazione romana in maiuscolo (I,II,III,IV,โ€ฆ);
  • lower-alpha โ€“ numerazione alfabetica in minuscolo (a,b,c,โ€ฆ);
  • upper-alpha โ€“ numerazione alfabetica in maiuscolo (A,B,C,โ€ฆ);

La proprietร  list-style

Anche questa famiglia prevede una proprietร  con sintassi compatta, si tratta di list-style.

Per questione di logica questa proprietร  puรฒ riassumere una di queste due coppie:

  • image + position
  • type + position

Non avrebbe alcun senso, infatti, definire sia unโ€™immagine che un tipo per il marcatore in quanto la prima prevarrebbe sulla seconda.

Vediamo qualche esempio:

ol { list-style: lower-roman inside; }
ul { list-style: url('icona.png') outside; }

Stilizzare le tabelle

CSS 2.1 dispone anche di proprietร  specifiche per la presentazione delle tabelle. Queste sono:

  • table-layout
  • border-collapse
  • border-spacing
  • empty-cells

table-layout

Questa proprietร  definisce il metodo col quale il browser deve renderizzare la tabella. Questa proprietร  ammette due soli valori:

  • auto โ€“ (default) il browser determina in automatico le regole di presentazione della tabella e delle sue celle in base al loro contenuto;
  • fixed โ€“ il brwoser si attiene in modo scrupoloso alle regole stabilite dal web-designer indipendentemenete dal contenuto della tabella.

Ad esempio:

table {
  width: 600px;
  table-layout: fixed;
}

La proprietร  table-layout non รจ ereditata ma riguarda solo lโ€™elemento cui viene applicata direttamente.

border-collapse e border-spacing

Questa proprietร  definisce il modo con cui vengono trattati i bordi della tabella e delle sue celle. Ammette solo due valori:

  • collapse โ€“ le celle condividuono gli eventuali bordi adicaenti;
  • separate โ€“ ciascuna cella ha il suo bordo;

Se il valore di border-collapse รจ settato su "separate" รจ possibile gestire lo spazio tra i bordi delle celle adiacenti mediante la proprietร  border-spacing in questo modo:

table {
  border-collapse: separate;
  border-spacing: 10px 20px;
}

I valori di border-spacing indicano la spaziatura in senso verticale (10px) ed orizzontale (20px).

Entrambe queste proprietร  vengono ereditate da eventuali tabelle annidiate.

empty-cells

Questa proprietร  consente di definire la presentazione delle celle vuote, cioรจ prive di contenuto. Ha due possibili valori:

  • show โ€“ mostra i bordi della cella vuota;
  • hide โ€“ i bordi non vengono mostrati (appare una sorta di "buco" nella griglia della tabella);
Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).