Formattare i contatori delle liste ordinate con CSS
Friday 30 November 2007 Marco Bertoni, ultimo aggiornamento: Wednesday 24 December 2008.
Grazie al contenuto generato via CSS è possibile modificare l'aspetto delle liste ordinate. Nulla di nuovo, ma ovviamente IE (compresa la versione 7) non supporta questo metodo.
Maria, una mia ex allieva, oggi mi ha chiesto un consiglio sui fogli di stile e le liste ordinate. Mentre le rispondevo ho giocato un po' con il contenuto generato.
A volte la mancanza di gradi di libertà nella scelta della formattazione dei contatori può creare problemi. Per esempio quando è necessario pubblicare sul web documenti legali, nei quali è più comune un ordinamento alfabetico con parentesi dopo il contatore: a), b), c) ecc. oppure numerico ma con parentesi: 1), 2), 3) ecc. piuttosto che nella forma standard HTML: 1. 2. 3. ecc.
Beh, per ciò che riguarda l'ordinamento numerico qualcosa si può fare con CSS e con tecniche ormai datate. Chiaramente solo chi utilizza browser evoluti (come Opera o Firefox) potrà osservare il risultato.
Ecco un esempio di codice HTML al quale applicare le regole CSS che vedremo:
- <ol>
- <li>Voce 1</li>
- <li>Voce 2
- <ol>
- <li>Sotto voce 1</li>
- <li>Sotto voce 2</li>
- <li>Sotto voce 3</li>
- </ol>
- </li>
- <li>Voce 3</li>
- <li>Voce 4
- <ol>
- <li>Sotto voce 1</li>
- <li>Sotto voce 2</li>
- <li>Sotto voce 3</li>
- </ol>
- </li>
- <li>Voce 5</li>
- <li>Voce 6</li>
- <li>Voce 7</li>
- </ol>
Lo scopo è ottenere contatori numerici delimitati da parentesi. Per le liste annidate il contatore numerico dovrà essere visualizzato nella forma 1.1, 1.2 ecc. Ecco il foglio di stile:
- ol { counter-reset: item; }
- ol li { list-style-type: none; }
- ol li:before {
- content: counter(item) ") ";
- counter-increment: item;
- }
- ol ol { counter-reset: sub-item; }
- ol li ol li:before {
- content: counter(item) "." counter(sub-item) ") ";
- counter-increment: sub-item;
- }
Ed ecco come apparirà la lista con il browser Firefox:


Saturday 1 December 2007 09:05
Veramente interessante, non avevo mai pensato ad una tecnica cosi’ ed inoltre mi hai fatto pensare che l’attributo counter nn lo conosco ancora…
Di corsa ad aggiornarsi!
Saturday 1 December 2007 17:18
Purtroppo speravo che con IE 7 finalmente Microsoft decidesse di supportare la proprietà
contente gli pseudo-elementi:beforee:after, ma è stata una delusione … come al solito.Se consideriamo il fatto che l’engine di IE 6 non è stata modificata per circa 8 anni, la speranza di poter finalmente utilizzare CSS come si deve con il browser che rimane il più diffuso al mondo resta vana. Peccato …
Monday 3 December 2007 17:13
[...] Formattare i contatori delle liste ordinate con CSS Marco Bertoni ci spiega un’ interessante tecnica per formattare le liste ordinate. Scritto da sw, il 3 Dicembre, 2007 alle 5:07 pm, in Risorse. Se l’ articolo ti ha interessato puoi seguire i commenti o i post del blog. Dì la tua. « Creare sfondi con le strisce [...]