Sommario
L'HTML offre agli autori svariati meccanismi per specificare elenchi di informazioni. Tutti gli elenchi devono contenere uno o più voci di elenco. Gli elenchi possono contenere:
L'elenco precedente, ad esempio, è un elenco non ordinato, creato per mezzo dell'elemento UL:
<UL> <LI>Informazioni non ordinate. <LI>Informazioni ordinate. <LI>Definizioni. </UL>
Un elenco ordinato, creato usando l'elemento OL, dovrebbe contenere informazioni per le quali l'ordine dovrebbe essere posto in risalto, come in una ricetta:
Gli elenchi di definizioni, creati usando l'elemento DL, consistono generalmente di una serie di coppie termine/definizione (sebbene gli elenchi di definizioni possano avere altre applicazioni). Così, nel pubblicizzare un prodotto, si potrebbe usare un elenco di definizioni:
definito in HTML come:
<DL> <DT><STRONG>Prezzo più basso</STRONG> <DD>La nuova versione di questo prodotto costa significativamente meno della precedente! <DT><STRONG>Più facile da adoperare</STRONG> <DD>Abbiamo modificato il prodotto in modo che sia più facile da usare! <DT><STRONG>Sicuro per i bambini</STRONG> <DD>Potete lasciare i vostri bambini da soli in una stanza con questo prodotto ed essi non si faranno male (non è una garanzia). </DL>
Gli elenchi possono anche essere annidati e differenti tipi di elenco possono essere usati insieme, come nell'esempio seguente, che è un elenco di definizioni che contiene un elenco non ordinato (gli ingredienti) ed un elenco ordinato (la procedura):
La presentazione esatta dei tre tipi di elenco dipende dal programma utente. Si raccomanda agli autori di non usare gli elenchi unicamente come un mezzo per creare del testo rientrato. Questo è un problema stilistico ed è gestito in modo appropriato per mezzo dei fogli di stile.
<!ELEMENT UL - - (LI)+ -- elenco non ordinato --> <!ATTLIST UL %attrs; -- %coreattrs, %i18n, %events -- > <!ELEMENT OL - - (LI)+ -- elenco ordinato --> <!ATTLIST OL %attrs; -- %coreattrs, %i18n, %events -- >
Marcatore iniziale: obbligatorio, marcatore finale: obbligatorio
<!ELEMENT LI - O (%flow;)* -- voce di elenco --> <!ATTLIST LI %attrs; -- %coreattrs, %i18n, %events -- >
Marcatore iniziale: obbligatorio, marcatore finale: facoltativo
Definizioni di attributo
Attributi definiti altrove
Gli elenchi ordinati e non ordinati sono riprodotti in modo identico eccetto per il fatto che i programmi utente di tipo visuale numerano le voci appartenenti ad elenchi ordinati. I programmi utente possono presentare tali numeri in una varietà di modi. Le voci di elenchi non ordinati non sono numerate.
Entrambi i tipi di elenco sono costituiti da sequenze di voci di elenco definite per mezzo dell'elemento LI (il cui marcatore finale può essere omesso).
Quest'esempio illustra la struttura fondamentale di un elenco.
<UL> <LI> ... prima voce di elenco... <LI> ... seconda voce di elenco... ... </UL>
Gli elenchi possono anche essere annidati:
ESEMPIO DISAPPROVATO:
<UL> <LI> ... Livello uno, numero uno... <OL> <LI> ... Livello due, numero uno... <LI> ... Livello due, numero due... <OL start="10"> <LI> ... Livello tre, numero uno... </OL> <LI> ... Livello due, numero tre... </OL> <LI> ... Livello uno, numero due... </UL>
Dettagli circa la numerazione. Negli elenchi ordinati non è possibile continuare automaticamente la numerazione da un elenco precedente o nascondere la numerazione di alcune voci di elenco. Tuttavia gli autori possono reimpostare il numero di una voce di elenco definendo il suo attributo value. La numerazione delle successive voci di elenco continua a partire dal nuovo valore. Per esempio:
<ol> <li value="30"> imposta a 30 il numero di questa voce di elenco. <li value="40"> imposta a 40 il numero di questa voce di elenco. <li> attribuisce a questa voce di elenco il numero 41. </ol>
<!-- elenchi di definizioni - DT per il termine, DD per la sua definizione --> <!ELEMENT DL - - (DT|DD)+ -- elenco di definizioni --> <!ATTLIST DL %attrs; -- %coreattrs, %i18n, %events -- >
Marcatore iniziale: obbligatorio, marcatore finale: obbligatorio
<!ELEMENT DT - O (%inline;)* -- termine della definizione --> <!ELEMENT DD - O (%flow;)* -- descrizione della definizione --> <!ATTLIST (DT|DD) %attrs; -- %coreattrs, %i18n, %events -- >
Marcatore iniziale obbligatorio, marcatore finale: facoltativo
Attributi definiti altrove
Gli elenchi di definizioni si differenziano solo leggermente dagli altri tipi di elenchi per il fatto che le voci di elenco consistono di due parti: un termine e una descrizione. Il termine è fornito per mezzo dell'elemento DT ed è vincolato a contenuto in riga. La descrizione è data con l'elemento DD che racchiude contenuto a livello di blocco.
Ecco un esempio:
<DL> <DT>Dweeb <DD>persona giovane ed eccitabile che può maturare diventando un <EM>Nerd</EM> o un <EM>Geek</EM> <DT>Hacker <DD>un abile programmatore <DT>Nerd <DD>persona tecnicamente brillante ma socialmente inetta </DL>
Ecco un esempio con termini e descrizioni multiple:
<DL> <DT>Obiettivo <DT>Obbiettivo <DD> Sistema ottico centrato che fornisce un'immagine reale di un oggetto, osservabile direttamente o raccolta su uno schermo. <DD> Il fine, lo scopo a cui mira un'operazione militare. <DD> Scopo, meta, risultato che ci si propone di ottenere. </DL>
Un'altra applicazione di DL, ad esempio, è nella marcatura dei dialoghi, con ogni DT che designa un parlante, ed ogni DD che contiene le sue parole.
Nota. Quella che segue è una descrizione di carattere informativo del comportamento di alcuni dei programmi utente di tipo visuale in uso, quando formattano degli elenchi. I fogli di stile consentono un miglior controllo sulla formattazione di elenchi (es., per quanto riguarda la numerazione, le convenzioni dipendenti dalla lingua, i rientri, ecc.).
In genere i programmi utente di tipo visuale rientrano gli elenchi annidati rispetto al livello corrente di annidamento.
L'attributo type specifica le opzioni di riproduzione per i programmi utente visuali in relazione sia a OL sia a UL.
Per l'elemento UL, i valori possibili dell'attributo type sono disc, square e circle. Il valore predefinito dipende dal livello di annidamento dell'elenco corrente. Questi valori sono maiuscolo-indifferenti.
Il modo in cui ciascun valore è presentato dipende dal programma utente. I programmi utente dovrebbero tentare di presentare un "disc" come un piccolo cerchio pieno, un "circle" come un piccolo cerchio vuoto ed uno "square" come un piccolo quadrato vuoto.
Un programma utente di tipo grafico potrebbe riprodurre ciò come:
per il valore
"disc"
per il valore
"circle"
per il valore
"square"
Per l'elemento OL, i possibili valori dell'attributo type sono riassunti nella tabella seguente (essi sono sensibili alla forma maiuscola/minuscola):
Type | Stile di numerazione | |
---|---|---|
1 | numeri arabi | 1, 2, 3, ... |
a | lettere minuscole | a, b, c, ... |
A | lettere maiuscole | A, B, C, ... |
i | numeri romani minuscoli | i, ii, iii, ... |
I | numeri romani maiuscoli | I, II, III, ... |
Si noti che l'attributo type è disapprovato e che gli stili degli elenchi dovrebbero essere gestiti per mezzo dei fogli di stile.
Ad esempio, usando i CSS è possibile specificare che lo stile dei numeri per le voci di elenco in un elenco numerato dovrebbero essere numerali romani minuscoli. Nell'estratto qui sotto, ogni elemento OL appartenente alla classe "numeriromani" avrà dei numerali romani al principio delle sue voci di elenco.
<STYLE type="text/css"> OL.numeriromani { list-style-type: lower-roman } </STYLE> <BODY> <OL class="numeriromani"> <LI> Fase uno ... <LI> Fase due ... </OL> </BODY>
La riproduzione di un elenco di definizioni dipende anche dal programma utente. L'esempio:
<DL> <DT>Dweeb <DD>persona giovane ed eccitabile che può maturare diventando un <EM>Nerd</EM> o un <EM>Geek</EM> <DT>Hacker <DD>un abile programmatore <DT>Nerd <DD>persona tecnicamente brillante ma socialmente inetta </DL>
potrebbe essere riprodotto nel modo seguente:
Dweeb persona giovane ed eccitabile che può maturare diventando un Nerd o un Geek Hacker un abile programmatore Nerd persona tecnicamente brillante ma socialmente inetta
DIR e MENU sono disapprovati.
Si veda la DTD transitoria per la definizione formale.
Attributi definiti altrove
L'elemento DIR è stato progettato allo scopo di essere usato per creare elenchi multicolonna di directory. L'elemento MENU è stato progettato allo scopo di essere usato per elenchi di menu a colonna singola. Entrambi gli elementi hanno la medesima struttura di UL, soltanto la riproduzione è differente. Di fatto, un programma utente riprodurrà un elenco DIR o MENU esattamente come un elenco UL.
Si raccomanda fortemente di usare UL in luogo di questi elementi.