10 Elenchi

Sommario

  1. Introduzione agli elenchi
  2. Elenchi non ordinati (UL), elenchi ordinati (OL) e voci di elenco (LI)
  3. Elenchi di definizioni: gli elementi DL, DT e DD
    1. Riproduzione visuale di elenchi
  4. Gli elementi DIR e MENU

10.1 Introduzione agli elenchi

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:

  1. Mescolare accuratamente gli ingredienti secchi.
  2. Versare gli ingredienti liquidi.
  3. Mescolare per 10 minuti.
  4. Cuocere in forno per un'ora a 300 gradi.

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:

Prezzo più basso
La nuova versione di questo prodotto costa significativamente meno della precedente!
Più facile da adoperare
Abbiamo modificato il prodotto in modo che sia più facile da usare!
Sicuro per i bambini
Potete lasciare i vostri bambini da soli in una stanza con questo prodotto ed essi non si faranno male (non è una garanzia).

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):

Gli ingredienti:
La procedura:
  1. Mescolare accuratamente gli ingredienti secchi.
  2. Versare gli ingredienti liquidi.
  3. Mescolare per 10 minuti.
  4. Cuocere in forno per un'ora a 300 gradi.
Note:
La ricetta può essere perfezionata con l'aggiunta di uva passa.

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.

10.2 Elenchi non ordinati (UL), elenchi ordinati (OL) e voci di elenco (LI)

<!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

type  =  style-information [CI]
Disapprovato. Questo attributo imposta lo stile di una voce di elenco. I valori attualmente disponibili sono pensati per programmi utente di tipo visuale. I valori possibili sono descritti sotto (insieme con le informazioni sulla forma maiuscola/minuscola).
start = number [CN]
Disapprovato. Solo per OL. Questo attributo specifica il numero iniziale della prima voce in un elenco ordinato. Il numero iniziale predefinito è "1". Si noti che mentre il valore di questo attributo è un intero, l'etichetta corrispondente può essere non numerica. Pertanto, quando lo stile della voce di elenco è lettere latine maiuscole (A, B, C, ...), start=3 equivale a "C". Quando lo stile è numerali romani minuscoli, start=3 equivale a "iii", ecc.
value = number [CN]
Disapprovato. Solo per LI. Questo attributo imposta il numero della voce di elenco corrente. Si noti che mentre il valore di questo attributo è un intero, l'etichetta corrispondente può essere non numerica (si veda l'attributo start).
compact [CI]
Disapprovato. Quando impostato, questo attributo booleano suggerisce ai programmi utente di tipo visuale di riprodurre l'elenco in una forma più compatta. L'interpretazione di questo attributo dipende dal programma utente.

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>

10.3 Elenchi di definizioni: gli elementi DL, DT e DD

<!-- 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.

10.3.1 Riproduzione visuale di elenchi

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:

A possible rendering of a disc per il valore "disc"
A possible rendering of a circle per il valore "circle"
A possible rendering of a square 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

10.4 Gli elementi DIR e MENU

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.