Il linguaggio html utilizzare le liste

62
Il linguaggio HTML: Utilizzare le liste

description

 

Transcript of Il linguaggio html utilizzare le liste

Il linguaggio HTML:

Utilizzare le liste

Introduzione

Nel corso di questa lezione, dedicata all’approfondimento degli

elementi di marcatura base del linguaggio HTML vedremo come

utilizzare i vari tag per inserire delle liste di tipo diverso all’interno

delle nostre pagine web.

Ogni lista menzionata nell’unità introduttiva “Elementi di HTML” ha

il suo formato specifico di visualizzazione:

✦Una lista ordinata (<ol>…</ol>) viene indicata attraverso

l’inserimento di un numero o di una lettera prima dei suoi elementi

singoli.

✦Una lista non ordinata (<ul>…</ul>) viene indicata attraverso

l’inserimento di un “proiettile”, come simbolo base, prima dei suoi

termini.

✦Una lista di definizione (<dl>…</dl>) ha due parti per ogni

elemento: <dt>un termine</dt> e una <dd>definizione o descrizione

di questo</dd>.

Le liste ordinate e non ordinate prevedono differenti opzioni per la

loro visualizzazione finale.

In particolare:

✦ Le liste ordinate possono presentare i singoli elementi preceduti

da:

• Numeri arabi

• Numeri romani (in maiuscolo e in minuscolo)

• Lettere (maiuscole e minuscole)

• Lettere e numeri di altre lingue

✦ Le liste non ordinate possono presentare i loro elementi preceduti

da:

• Differenti tipologie e/o stili di “proiettili”

• Immagini o icone specifiche

Esaminiamo ora le caratteristiche e le modalità di utilizzo di ciascuna

lista.

Liste ordinate

Le liste ordinate, organizzate con numeri o lettere accanto ad ogni

elemento, sono perfette per presentare una sequenza logica di

passaggi e/o attività. Ad esempio una lista numerata può essere

utilizzata per indicare degli specifici passaggi in progressione.

Una lista ordinata può pertanto apparire in questo modo:

1. Usando Internet Explorer, aprire la pagina web che visualizza la

grafica specifica che si desidera visualizzare come wallpaper per il

proprio desktop.

2. Cliccare l’immagine con il tasto destro per aprire il menù di

contenuto.

3. Scegliere l’opzione "imposta come sfondo" per salvare l’immagine

e usarla come wallpaper per il desktop.

Le liste ordinate usano il tag (<ol>) per delimitare l’intera lista e il

tag interno specifico (<li>), relativo ad ogni elemento/passaggio

contenuto.

Nella lista di esempio precedente, l’elenco comprende tre elementi

numerati con numeri arabi. Tale visualizzazione costituisce la resa di

default di una lista ordinata per ogni documento HTML.

Vediamo ad esempio la struttura seguente

<html>

<head>

<title>Esempio lista ordinata</title>

</head>

<body>

<ol>

<li> Usando Internet Explorer, aprire la pagina web che visualizza la grafica

specifica che si desidera visualizzare come wallpaper per il proprio desktop </li>

<li> Cliccare l’immagine con il tasto destro per aprire il menù di contenuto </li>

<li> Scegliere l’opzione “imposta come sfondo” per salvare l’immagine e usarla

come wallpaper per il desktop. </li> </ol>

</body>

</html>

Output

Per indicare un tipo differente di identificatore per ogni elemento

presente in lista è possibile utilizzare un attributo di stile HTML

(style), interno al tag <ol> di apertura della lista, per impostare una

diversa visualizzazione, impiegando in linea la proprietà di stile list-

style.

<html>

<head>

<title>Lista ordinata - lettere</title>

<style type="text/css">

body {background : #E9967A}

ol {font-weight: bold; color: #8B0000;}

</style>

</head>

<body>

<ol style="list-style: upper-alpha">

<li> Usando Internet Explorer, aprire la pagina web che visualizza la grafica

specifica che si desidera visualizzare come wallpaper per il proprio desktop </li>

<li> Cliccare l’immagine con il tasto destro per aprire il menù di contenuto </li>

<li> Scegliere l’opzione "imposta come sfondo" per salvare l’immagine e usarla

come wallpaper per il desktop </li> </ol>

</body>

</html>

Output

La proprietà list-style, utilizzata in linea nell’esempio precedente,

supporta i seguenti valori:

✦ decimal

✦ decimal-leading-zero

✦lower-roman

✦upper-roman

✦lower-greek

✦lower-alpha

✦lower-latin

✦upper-alpha

✦upper-latin

✦hebrew

✦armenian

✦georgian

✦cjk-ideographic

✦hiragana

✦katakana

✦hiragana-iroha

✦katakana-iroha

✦none

Alcuni di questi valori dipendono anche dalla famiglia di font e dal

font singolo scelto nella propria struttura HTML. Ad esempio usando

un valore “hiragana” con un font latin-based, la corretta

visualizzazione finale potrebbe non essere correttamente supportata.

Per fare una scelta adeguata bisogna far si che le opzioni di

linguaggio e i caratteri scelti nella propria struttura supportino il

valore specificato dalla lista.

Le liste ordinate supportano anche la proprietà list-style-position con

dei valori necessari ad indicare il posizionamento dei singoli elementi

di lista.

Con questa proprietà è possibile controllare dove i numeri o i caratteri

precedenti ogni elemento dovranno apparire. Tale proprietà prevede

l’indicazione di due possibili valori:

✦outside - Con questo valore il numero o il carattere verrà

visualizzato fuori dal margine sinistro del contenitore di lista.

✦inside - Con questo valore il numero o il carattere verrà

visualizzato internamente al margine sinistro del contenitore di lista.

Il valore di default per questa proprietà è: outside.

Versioni HTML precedenti permettevano anche l’uso dell’attributo

start internamente al tag <ol> per specificare con quale numero o

lettera una data lista ordinata sarebbe dovuta iniziare.

Ad esempio la seguente struttura inizia con il numero decimale 12:

<html>

<head>

<title>Lista ordinata - lettere</title>

<style type="text/css">

body {background : yellow}

ol {font-weight: bold; color: #8B0000;}

ol {list-style-position: inside; }

</style>

</head>

<body>

<ol start="12" style="list-style: decimal">

<li> Rimuovere la pellicola protettiva</li>

<li>Rimuovere la linguetta gialla di protezione</li>

<li>Alloggiare nell’apposito scomparto</li> </ol>

</body>

</html>

Output

Attualmente l’attributo start in relazione al tag <ol> è stato deprecato

e rimpiazzato da uno stile CSS. Tuttavia è ancora possibile utilizzare

in questo modo l’attributo start, verificando sempre la sua corretta

visualizzazione attraverso browser diversi.

L’esempio seguente mostra come utilizzare uno stile (CSS) per

ottenere lo stesso effetto visto con l’utilizzo dell’attributo start.

Pertanto anche nella struttura seguente e nel relativo output la lista

ordinata comincerà sempre con il numero decimale 12.

Esempio

<html>

<head>

<title>Lista ordinata - lettere</title>

<style type="text/css">

body {background : yellow}

ol {list-style-position: outside; }

ol { counter-reset: list 11; } li { list-style-type: none; } li:before {

content: counter(list,decimal) "."; counter-increment: list; }

</style>

</head>

<body>

<ol>

<li> Rimuovere la pellicola protettiva</li>

<li>Rimuovere la linguetta gialla di protezione</li>

<li>Alloggiare nell’apposito scomparto</li>

</ol>

</body>

</html>

Output

La codifica evidenziata in questo esempio introduce alcuni concetti di

stile relativi agli attuali CSS 2.

Analizziamoli singolarmente:

✦ La marcatura ol, attraverso la proprietà di stile counter-reset,

utilizzata proprio per determinare le impostazioni di inizializzazione

di una lista, comincerà con il numero 12 (bisogna sempre specificare

il numero precedente a quello desiderato per far partire la lista e, in

questo caso, l’11).

✦ In questo caso la proprietà list-style-type non specifica una

visualizzazione particolare dal momento che viene indicato il valore

none. Altrimenti, utilizzando questa stessa proprietà, è possibile

associare dei simboli specifici oppure lettere e numeri agli elementi

della lista. I valori associabili a questa proprietà di stile sono gli stessi

della proprietà list-style, elencati in precedenza.

✦ La definizione li:before fa si che: 1) l’"elemento contatore" della

lista venga visualizzato prima di ogni singolo elemento dell’elenco

(usando lo pseudo-elemento “before” e la proprietà “content”)

insieme ad un punto e uno spazio.

2) il contatore venga incrementato. Tale incremento durante

l’applicazione di uno stile e l’inserimento della lista, avviene

immediatamente prima della sua visualizzazione. Per questo motivo è

necessario impostare il contatore ad un livello (numero o lettera)

inferiore rispetto a quello di partenza desiderato.

Usando lo stile menzionato nell’esempio precedente, anche la

seguente struttura di lista visualizzerà un elenco con degli elementi

numerati da 12 a 15:

Es.

<html>

<head>

<title>Lista ordinata</title>

<style type="text/css">

body {background : #98FB98}

ol { counter-reset: list 11; } li { list-style-type: none; } li:before {

content: counter(list,decimal) "."; counter-increment: list; }

</style>

</head>

<body>

<ol>

<li> Passaggio 12</li>

<li> Passaggio 13</li>

<li> Passaggio 14</li>

<li> Passaggio 15</li>

</ol>

</body>

</html>

Output

Nel modulo successivo, dedicato ai CSS attuali analizzeremo in

dettaglio tutte le modalità di applicazione di regole di stile alle liste

HTML.

Alcune proprietà di stile associabili all’elemento lista possono essere

definite insieme attraverso l’utilizzo della proprietà abbreviata list-

style, associabile agli elementi <ol> e <ul>. Questa proprietà veloce

permette di impostare dei valori per tre proprietà di lista differenti :

list-style: (1) list-style-type (2) list-style-image e (3) list-style-

position.

Tale sintassi indica insieme i valori delle singole proprietà in un

ordine preciso.

Pertanto utilizzando questa proprietà di stile abbreviata sarà

necessario indicare prima il valore di list-style-type, poi quello della

proprietà list-style-image e infine il valore relativo alla posizione.

E’ ovviamente possibile utilizzare questa singola proprietà per

specificare uno, due o tutte e tre le proprietà di stile in una singola

dichiarazione.

Ad esempio, per definire una lista ordinata con lettere minuscole, e

posizionamento interno al contenuto di lista è possibile utilizzare la

seguente struttura in linea:

<ol style="list-style: lower-alpha inside;">

oppure:

ol {list-style: lower-alpha inside;}

Attraverso la proprietà list-style-image, finora non menzionata, è

possibile associare un’immagine specifica ad un elemento della lista,

secondo la seguente sintassi:

ol oppure ul{list-style-image: url(immagine_lista.jpg);}

Inserendo un tipo di simbolo (list-style-type) per gli elementi e anche

un’immagine per questi, nella visualizzazione finale prevarrà sempre

l’utilizzo dell’immagine indicata.

Alla proprietà singola list-style-image è possibile anche associare il

valore none per non far comparire un’immagine eventualmente

impostata in precedenza.

ol oppure ul{list-style-image: none;}

Vediamo ora l’utilizzo congiunto delle proprietà di stile analizzate

finora nella seguente struttura di esempio.

Esempio 1

<html>

<head>

<title>Proprietà list-style</title>

<style type="text/css">

body {background : #E9967A}

ol li {list-style: square inside; } // E’ possibile indicare sia la marcatura relativa al

tipo di lista (in questo caso ol) che quella

contenente i suoi singoli elementi (li).

</style>

</head>

<body>

<ol>

<li> Infornare a forno preriscaldato a 200° circa </li>

<li> Sfornare dopo almeno 20 minuti </li>

<li> Decorare a piacere con gocce di cioccolata o codette di zucchero </li>

</ol>

</body>

</html>

Output

Esempio 2

<html>

<head>

<title>Proprietà list-style con immagine</title>

<style type="text/css">

ol {color: red; }

ol {list-style: url(segnalista.png) outside; }

</style>

</head>

<body>

<ol>

<li> Infornare a forno preriscaldato a 200° circa </li>

<li> Sfornare dopo almeno 20 minuti </li>

<li> Decorare a piacere con gocce di cioccolata o codette di zucchero </li>

</ol>

</body>

</html>

Output

Liste non ordinate

Le liste non ordinate sono simili a quelle ordinate ma utilizzano dei

“proiettili” o simboli base per identificare i singoli componenti della

lista.

Liste di questo tipo dovrebbero essere utilizzare per raggruppare degli

elementi diversi, senza una sequenza logica particolare come

nell’esempio seguente.

Gusti:

✦Vaniglia

✦Cioccolato

✦Fragola

Una lista non ordinata viene delimitata interamente attraverso il tag

(<ul>) mentre, come anche nel caso della lista ordinata, ogni

elemento interno alla lista stessa sarà racchiuso nei tag <li>…</li>.

Nella struttura seguente e nel relativo output vediamo un esempio di

lista non ordinata nella sua visualizzazione standard.

<html>

<head>

<title>Esempio di lista non ordinata</title>

<style type="text/css">

body {background-color: #40E0D0; }

ul {font-style: italic; color: red; }

</style>

</head>

<body>

<ul>

<li><b>Vaniglia</b></li>

<li><b>Cioccolato</b></li>

<li><b>Fragola</b</li>

</ul>

</body>

</html>

Output

Anche le liste non ordinate supportano la proprietà list-style-type ma

con alcune differenze riguardanti i suoi valori, che sono

esclusivamente i seguenti:

✦disc

✦circle

✦square

✦none

Il simbolo di default del cosiddetto “proiettile” corrisponde al valore

“disc”. Tuttavia browser differenti possono visualizzare anche in

maniera leggermente diversa tale simbolo di default.

Così come per le liste ordinate è possibile definire l’utilizzo della

proprietà di stile list-style-position che nel caso delle liste non

ordinate controlla dove i “proiettili” compariranno”:

outside: fuori dal margine sinistro dell’oggetto lista

inside: dentro al margine sinistro dell’oggetto lista

Ad esempio per far comparire i “proiettili” o altri simboli

internamente ai margini è possibile utilizzare la seguente regola di

stile:

<html>

<head>

<title>Esempio di lista non ordinata</title>

<style type="text/css">

body {background-color: #40E0D0; }

ul { list-style: circle inside; color: green; }// proprietà abbreviata list-style con

indicazione dei valori di tipo e

posizione

</style>

</head>

<body>

<ul>

<li><b>Crema</b></li>

<li><b>Pistacchio</b></li>

<li><b>Nocciola</b</li>

</ul>

</body>

</html>

Output

Anche le liste non ordinate supportano l’utilizzo di immagini

specifiche per identificare i singoli elementi di lista. Tuttavia le

immagini devono rispettare i seguenti criteri per essere correttamente

utilizzate:

✦Essere sempre accessibili al documento via HTTP.

✦Avere un formato adeguato (generalmente .jpg, .gif, oppure .png).

✦Avere delle dimensioni appropriate per essere un simbolo di lista.

Per specificare un’immagine per una lista non ordinata è sempre

possibile utilizzare la proprietà list-style-image con la relativa URL

oppure utilizzare la proprietà abbreviata list-style.

Esempio:

<html>

<head>

<title>Lista non ordinata e immagini</title>

<style type="text/css">

ul { list-style: url(cono.png) outside; color: green; }

</style>

</head>

<body>

<ul>

<li><b>Cocco</b></li>

<li><b>Melone</b></li>

<li><b>Anguria</b</li>

</ul>

</body>

</html>

Output

Liste di definizione

Al contrario delle due tipologie di liste finora analizzate, le liste di

definizione presentano meno opzioni di formattazione.

Vediamo la seguente struttura base di una lista di definizione.

<html>

<head>

<title>Esempio lista di definizione</title>

</head>

<body>

<dl>

<dt>Internet Explorer</dt> // termine di lista

<dd> Sviluppato dalla Microsoft e incluso in Windows </dd> // definizione

<dt>Mozilla</dt>

<dd> Sviluppato dal progetto Mozilla, un browser open-source per diverse

piattaforme </dd>

<dt>Safari</dt>

<dd> Sviluppato dalla Apple per il sistema operativo OSX</dd>

</dl>

</body>

</html>

Output

I diversi componenti della lista di definizione (<dl>…</dl>) sono:

a) i suoi termini specifici (es. <dt>Explorer</dt>) che possono essere

codificati anche attraverso semplici “proiettili” e b) le sue definizioni

(<dd>…</dd>).

Per conferire maggior chiarezza alle liste di definizione è bene

applicare a queste delle regole di stile specifiche, volte a differenziare

proprio i singoli termini dalle rispettive definizioni. Tali

differenziazioni possono essere realizzate con accorgimenti diversi:

ad esempio modificando il font, il suo stile, i colori, a seconda del

componente della lista scelto.

Ad esempio nella seguente struttura i termini di definizione saranno

resi in rosso e in corsivo.

<html>

<head>

<title>Esempio lista di definizione</title>

<style type="text/css">

dt { color: red; font-style: italic; font-weight: bold }

span { font-style: italic; }

</style>

</head>

<body>

<dl>

<dt>Internet Explorer</dt>

<dd> Sviluppato dalla Microsoft e incluso in Windows </dd>

<dt>Mozilla</dt>

<dd> Sviluppato dal progetto Mozilla, un browser <span>open-source</span> per

diverse piattaforme </dd>

<dt>Safari</dt>

<dd> Sviluppato dalla Apple per il sistema operativo OSX</dd>

</dl>

</body>

</html>

Output

Naturalmente è possibile personalizzare ulteriormente le liste in

questione (così come le liste ordinate e non ordinate) utilizzando

quegli elementi di marcatura base HTML analizzati nell’unità

precedente.

Ad esempio per diversificare i termini dalla loro definizione è

possibile utilizzare l’attributo class per applicare uno stile particolare

solo ad alcune sezioni della lista.

Esempio

<html>

<head>

<title>Esempio lista di definizione</title>

<style type="text/css">

body {background-color: #F5F5DC; }

dt {color: red; font-style: italic; font-weight: bold }

.sfondo {background-color: #FFEBCD; }

#base {background-color: #FFE4C4; }

span { font-style: italic; }

</style>

</head>

<body>

<dl id="base">

<dt>Internet Explorer</dt>

<dd class="sfondo"> Sviluppato dalla Microsoft e incluso in Windows </dd>

<dt>Mozilla</dt>

<dd class="sfondo"> Sviluppato dal progetto Mozilla, un browser <span>open-

source</span> per diverse piattaforme </dd>

<dt>Safari</dt>

<dd class="sfondo"> Sviluppato dalla Apple per il sistema operativo OSX</dd>

</dl>

</body>

</html>

Output

E’ inoltre possibile personalizzare ulteriormente le liste inserendo dei

bordi a racchiudere quegli elementi che si vogliono mettere in

evidenza.

Ad esempio nella seguente struttura la lista di definizione sembra

quasi inserita in una tabella. Per ottenere questo effetto è stata

specificata l’ampiezza del contenitore stesso della lista e sono stati

applicati bordi colorati diversi per gli elementi dl e dt/dd.

Esempio

<html>

<head>

<title>Esempio lista di definizione</title>

<style type="text/css">

body {background-color: #FFE4C4; }

span { font-style: italic; }

dl{background-color: #FFF8DC; width: 450 px; ; border: solid red;}

dt{font-weight: bold; font-style: italic; color: red; border: 1px solid red; }

dd {border: 1px solid red;}

</style>

</head>

<body>

<dl>

<dt>Internet Explorer</dt>

<dd> Sviluppato dalla Microsoft e incluso in Windows </dd>

<dt>Mozilla</dt>

<dd> Sviluppato dal progetto Mozilla, un browser <span>open-source</span> per

diverse piattaforme </dd>

<dt>Safari</dt>

<dd> Sviluppato dalla Apple per il sistema operativo OSX</dd>

</dl>

</body>

</html>

Output

Liste annidate

Infine è opportuno ricordare che le liste HTML, di qualunque tipo

esse siano, possono essere annidate.

Supponiamo di aver già creato una lista generica (o non ordinata)

all’interno della quale vogliamo inserire un’ulteriore lista di tipo

ordinato, come nell’esempio seguente.

✦ Inviate attraverso questo indirizzo di posta una lettera riguardante

il problema, specificando anche:

1. Nome

2. Codice identificativo dell’ordine

3. Informazioni di contatto

4. Una descrizione dettagliata del problema

In questo caso sarà necessario inserire una lista ordinata all’interno

della marcatura corrispondente ad una lista non ordinata, come

evidenziato nella struttura seguente.

<html>

<head>

<title>Liste annidate</title>

<style type="text/css">

body {background-color: #DCDCDC; }

ul {list-style: disc; }

ol {list-style: decimal; }

</style>

</head>

<body>

<ul>

<li>

Inviate attraverso <a href="mailto:[email protected]">questo</a>

indirizzo di posta una lettera riguardante il problema, specificando anche:</li>

<ol>

<li> Nome </li>

<li> Codice identificativo dell’ordine </li>

<li> Informazioni di contatto </li>

<li> Una descrizione dettagliata del problema </li>

</ol>

</ul>

</body>

</html>

Output

E’ bene ricordare che è possibile annidare tra loro tutte le tipologie di

liste finora analizzate.

Nell’esempio seguente una lista di definizione base è stata inserita

all’interno di una lista ordinate (<ol>…</ol>)

Esempio

<html>

<head>

<title>Liste annidate</title>

<style type="text/css">

body {background-color: #F8F8FF; }

ol {list-style: square; color: red}

li {font-weight: bold; }

dd {color: brown; }

dt {font-style: italic; }

</style>

</head>

<body>

<ol>

<li>Tematiche prima giornata</li>

<dl>

<dt>Pasta brisee</dt>

<dd>Storia - Ingredienti e lavorazione </dd>

<dt>Pasta sfoglia</dt>

<dd>Storia - Ingredienti e lavorazione</dd>

</dl>

<li> Seconda giornata </li>

<dl>

<dt>Pasta frolla</dt>

<dd>Storia - Ingredienti e lavorazione </dd>

<dt>Bisquit</dt>

<dd>Storia - Ingredienti e lavorazione</dd>

</dl>

</ol>

</body>

</html>

Output

FINE LEZIONE