Introduzione all'HTML

Acronimi più utilizzati

WWW (World Wide Web)

SGML (Standard Generalized Markup Language)

Linguaggi per la descrizione astratta di documenti.

WYSIWYG (What You See Is What You Get)

Ad esempio Word

DTD (Document Type Definition)

Definizione del tipo di documento - Questa e' un'implementazione specifica della decrizione di documento fatta usando SGML.

HTML (HyperText Markup Language)

HTML è un DTD di SGML

Ipertesto - Testo memorizzato in un computer in modo tale che leggendo un documento si può seguire un riferimento ad un altro documento e leggere quest'ultimo prima di tornare all'originale.
Markup - Istruzione dettagliata scritta su un manoscritto per definire come il manoscritto deve essere stampato.
Ad esempio:
<B> Corso di Aggiornamento <B>
Corso di Aggiornamento


Documenti HTML

I documenti HTML sono in semplice formato testo e possono essere creati usando un qualsiasi editor di testo.

Per i nostri esempi useremo il Notepad di Windows. Comunque, le ultime versioni di alcuni browser includono degli appositi editor. Sono disponibili editor HTML anche per i sistemi DOS/Windows ed Apple. Ex. HTMLed (MSWin) oppure HTML HyperEdit Toolbook (MSWin) o anche HTML Assistant (MSWIN). Un altro potente editor in ambiente WYSIWYG è HoTMetaL.

I documenti scritti vengono verificati semplicemente leggendoli con un browser.


Composizione

Un documento HTML è formato da elementi (ad esempio, tabelle, paragrafi, liste).

Ogni elemento è individuato da una etichetta. In HTML una etichetta è formata da:

< nome_etichetta >

Le etichette sono usate normalmente in coppia.

Alcune etichette possono avere degli attributi.

Ad esempio, <B> Corso </B> indica che la parola Corso deve essere presentata in grassetto.



Un semplice documento HTML

Questo è un semplice esempio di documento HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> 
<HTML> 
<HEAD> 
<TITLE>Semplice Esempio di HTML</TITLE> 
<META NAME="Author" CONTENT="Giuseppe Anastasi"> 
<META NAME="GENERATOR" CONTENT="Mozilla/3.01b1Gold (Win16; I) [Netscape]"> 
<META NAME="Description" CONTENT="Documento introduttivo"> 
</HEAD> 
<BODY>
<H1>Questo &egrave; un piccolo documento HTML</H1>
</BODY> 
</HTML>


Vedi la versione interpretata


Nota: HTML non distingue tra maiuscole e minuscole. <title> è completamente equivalente a <TITLE> o <TiTlE>.

<P ALIGN=right>Benvenuti al mondo di HTML.</P>
<CENTER><P>Questo &egrave; il primo paragrafo</P></CENTER>


Vedi la versione interpretata


<P>Benvenuti al mondo di HTML.<BR>
Questo &egrave; il primo paragrafo</P>


Vedi la versione interpretata


Titoli

Ogni ipertesto HTML dovrebbe avere un titolo. Un titolo è generalmente mostrato separatamente dal documento ed è usato principalmente per l'identificazione del documento in altri contesti.

Un buon titolo dovrebbe essere composto da almeno sei parole che descrivano le finalità del documento.

Intestazioni

HTML ha sei livelli di intestazioni (numerati da 1 a 6), con 1 quello più evidenziato. La sintassi dell'intestazione è:

  <Hy>Testo dell'intestazione</Hy>

dove y è un numero tra 1 e 6 che specifica il livello di grandezza.

Paragrafi

A differenza di molti documenti nei principali Word Processors, il ritorno carrello (a capo) e lo spazio bianco nei files HTML sono insignificanti.

Importante: Ciascun paragrafo deve essere terminato con <P>. Il browser ignora ogni indentazione o linea bianca nel testo sorgente. Senza l'etichetta <P>, il documento diviene un unico largo paragrafo.

<P ALIGN=right>Benvenuti al mondo di HTML.</P> <CENTER><P>Questo
 &egrave; il primo paragrafo</P></CENTER>

Eccezione: testo preformattato

Esempio:

<PRE>
  #!/bin/csh 
  cd $SCR 
  cfs get mysrc.f:mycfsdir/mysrc.f 
  cfs get myinfile:mycfsdir/myinfile 
  fc -02 -o mya.out mysrc.f 
  mya.out 
  cfs save myoutfile:mycfsdir/myoutfile 
  rm * 
</PRE>


Vedi la versione interpretata


Nota Bene: Per preservare la leggibilità nei file HTML, le intestazioni dovrebbero essere su linee separate, e i paragrafi dovrebbero essere separati da linee bianche.


Liste

In HTML è possibile definire liste non numerate, numerate e di definizioni.

Per gli elementi delle liste, nessun separatore di paragrafo è richiesto.

Le etichette per gli argomenti nella lista determinano la fine di ciascun elemento della lista stessa.

Liste non numerate

    1. La lista è identificata dall'etichetta <UL>.
    2. Ogni singolo elemento della lista è preceduto dall'etichetta <LI>.
    3. La lista è conclusa con l'etcichetta </UL>.

Esempio:

  <UL>
  <LI> arance
  <LI> banane
  </UL>


Vedi la versione interpretata


Supponiamo di voler spostare un elemento della lista al centro e lasciare l'altro a sinistra.


Vedi la versione interpretata


NOTA BENE: differenti browser possono mostrare una lista non ordinata in modo differente.


Liste numerate

    1. La lista è identificata dall'etichetta <OL>.
    2. Ogni singolo elemento della lista è preceduto dall'etichetta <LI>.
    3. La lista è conclusa con l'etcichetta </OL>.

Esempio:

      <OL>
      <LI> giallo
      <LI> rosso
      <LI> verde
      </OL>


Vedi la versione interpretata


Liste di definizioni

    1. La lista è identificata dall'etichetta <DL>.
    2. Ogni termine nella lista è preceduto dall'etichetta <DT>.
    3. Ogni definizione di un termine è preceduta dall'etichetta <DD>.
    4. La lista è conclusa con l'etcichetta </DL>.

Esempio:

  <DL>
  <DT><FONT COLOR="#0000FF"><FONT SIZE=+2> DII </FONT></FONT>
  <DD> Il DII è il Dipartimento di Ingegneria della Informazione 
       ed è situato all'interno della Facoltà di Ingegneria
  <DT> <FONT COLOR="#0000FF"><FONT SIZE=+2> CERN </FONT></FONT>
  <DD> Il laboratorio Europeo per lo studio della Fisica delle
       particelle(CERN) è situato in Svizzera. 
       È quì che è nata l'idea dell'utilizzo a scopi informativi
       e didattici del protocollo http, dell'architettura CLIENT/SERVER 
       e di HTML. 
  </DL>


Vedi la versione interpretata


NOTA BENE: I campi <DT> e <DD> possono contenere paragrafi multipli (separati da <P>), liste, o altre informazioni.


L'attributo COMPACT può essere usato quando i termini sono molto brevi. L'uso dell'attributo forza a il browser a porre la definizione nella stessa riga del termine.

  <DL COMPACT>
  <DT><FONT COLOR="#0000FF"><FONT SIZE=+2> -i </FONT></FONT>
  <DD> Invoca.....
  <DT> <FONT COLOR="#0000FF"><FONT SIZE=+2> -h </FONT></FONT>
  <DD> Invoca ....
     <DL COMPACT>
     <DT><FONT COLOR="#0000FF"><FONT SIZE=+2> -g </FONT></FONT>
     <DD> Invoca.....
     <DT> <FONT COLOR="#0000FF"><FONT SIZE=+2> -r </FONT></FONT>
     <DD> Invoca ....
     </DL>
  </DL>


Vedi la versione interpretata


Liste annidate

Come visto nel precedente esempio, le liste possono essere annidate.

Un esempio di liste annidate è il seguente:

  <UL>
  <LI> <FONT COLOR="#0000FF"> Le province dell'Umbria:</FONT>
    <UL>
    <LI> Perugia
    <LI> Terni
    </UL>
  <LI> <FONT COLOR="#0000FF"> Le province della Basilicata: </FONT>
    <UL>
    <LI> Potenza
    <LI> Matera
    </UL>
  </UL>


Vedi la versione interpretata


Indentazione

Le etichette <BLOCKQUOTE> e </BLOCKQUOTE> vengono usate per includere un margine di indentazione al testo.

ESEMPIO:

  <BLOCKQUOTE>
  <P>Ometti le parole non necessarie</P>
  <BLOCKQUOTE>
      <P> Sono non necessarie tutte le parole superflue </P>
  </BLOCKQUOTE>
  <P> Lo stile vigoroso è coinciso </P>
  </BLOCKQUOTE>





Vedi la versione interpretata


Indirizzi (Addresses)

L'etichetta <ADDRESS> è generalmente usata nei documenti HTML per specificarne l'autore e provvedere a lasciare un modo per contattarlo (ex., un indirizzo e-mail). Questa è generalmente l'ultima etichetta-direttiva in un file e viene posta su una nuova linea, giustificata a sinistra.

Per esempio, l'ultima parte del file HTML di questa guida potrebbe essere:

  <ADDRESS>
  Una guida ad HTML / Giuseppe Anastasi / anastasi@iet.unipi.it / 
  rivisto Novembre 96
 </ADDRESS>


Vedi la versione interpretata


Formattazione dei caratteri

HTML ha due tipi di stili per le parole o le frasi: logico e fisico.

Lo stile logico etichetta il testo con riferimento al suo significato. Lo stile logico è configurato direttamente dal browser. Ad esempio, l'etichetta <CITE>, che viene utilizzata quando sono citati titoli di libri, puo' essere definita come lo stile italico dal browser. Ogni volta che una parola (o un insieme di parole) è inserita tra <CITE> e </CITE> il browser la mostra in italico.

Lo stile fisico indica direttamente la specifica apparenza richiesta. Ad esempio, porre una parola tra <I> e </I> indica al browser di visualizzarla in italico.

Parallelo: definire un nuovo stile oppure definire un paragrafo alla volta in WORD.

Stile fisico

ESEMPIO


Stile fisico

<DFN>
Usato per una definizione. Normalmente in italico.
<EM>
Usato per dare enfasi. Normalmente in italico.
<CITE>
Usato per titoli di libri, film. Normalmente in italico.
<CODE>
Usato per mostrare codice. Normalmente in caratteri a larghezza fissa.
<KBD>
Usato per richiedere ingressi da tastiera. Normalmente in caratteri a larghezza fissa.
<SAMP>
Usato per sequenze di caratteri letterali. Normalmente in caratteri a larghezza fissa.
<STRONG>
Usato per dare una forte enfasi. Normalmente in grassetto.
<VAR>
Usato per rappresentare variabili. Normalmente in italico.

ESEMPIO


Caratteri speciali

Particolari sequenze di caratteri (ESCAPE SEQUENCE) possono essere usate per:

Nel primo caso rientrano le parentesi angolari a sinistra (<) e a destra (>), e la e commerciale (&).

Le parentesi angolari sono usate per specificare le etichette HTML (come mostrato sopra), mentre la e commerciale è usata come meccanismo di escape per questi ed altri caratteri:

Nel secondo caso rientrano, ad esempio

Altre notizie su questo argomento sono disponibili in un listato presso CERN http://www.w3.org/hypertext/WWW/MarkUp/ISOlat1.html.


Collegamento ad altri documenti

La potenza espressiva del linguaggio HTML è dovuta soprattutto alla possibilità di collegare il testo o/e un'immagine (ipertesto) di un documento al testo e/o un'immagine dello stesso documento o ad un altro documento. Un browser segnala il testo o l'immagine collegata con un colore differente da quello normalmente utilizzato o con una sottolineatura.

L'etichetta che identifica un ipertesto è <A>, dove A è l'abbreviazione di ANCHOR.

Per includere un'ancora nel documento si procede nel modo seguente:

  1. Si inizia l'ancora con <A (includere uno spazio dopo A);
  2. Si specifica il documento a cui si sta effettuando il collegamento nel modo seguente HREF="nome_del_file.htm">;
  3. Si inserisce il testo che fungerà da ipertesto nel documento corrente;
  4. Si inserisce l'etichetta di fine ancora: </A>

Un esempio di ipertesto è il seguente:

  <A HREF="MioLink.htm"> MioLink</A>


"Mio Link" rappresenta l'ipertesto collegato al documento MioLink.htm.


IMPORTANTE

In generale, dovrebbero essere utilizzati i collegamenti relativi per le seguenti ragioni:

  1. È facile spostare un gruppo di documenti ad un'altra locazione
  2. È più efficiente connettersi al server
  3. Si scrive di meno!!!!


Uniform Resource Locator

Uniform Resource Locator (URL) è il formato usato dai documenti WWW per localizzare altri file. Un URL ci indica il tipo di risorsa alla quale stiamo accedendo (ex., http, gopher, ftp), il server che la possiede, il cammino per ritrovarla ed il suo nome. Il formato usato è:

scheme://host.domain[:port]/path/filename

dove scheme è uno tra:

file
un file sul server locale
http
un file su un World Wide Web server
gopher
un file su un Gopher server
telnet
una connessione basata sul telnet

Il numero della porta viene generalmente omesso.

Ad esempio, il collegamento al Televideo disponibile al Dipartimento di Ingegneria della Informazione può essere espresso come

  <A HREF="http://www.iet.unipi.it/~tlv/index.html">
  Televideo</A>
TELEVIDEO

Vedi anche il documento Addressing preparato dal CERN per informazioni addizionali riguardo gli URL. A Beginner's Guide to URLs è posizionata sul NCSA Mosaic Help menu.


Collegamenti a specifiche sezioni di un documento

Le ancore possono anche essere usate per spostare il lettore ad una particolare sezione di un documento (anche dello stesso). Questo tipo di ancore sono chiamate ancore nominate perchè per creare i collegamenti si devono inserire i nomi all'interno del documento.

Collegamento tra sezioni di documenti differenti

Si supponga che si voglia creare un collegamento tra un ipertesto in un documento A.htm ad una sezione in un documento B.htm (ad esempio quella che inizia con la frase "Sezione B.3".

  1. Nel documento B.htm si crea l'ancora nominata
    <H2><A NAME= "ANC_NOMIN"> Sezione B.3 </A></H2>
  2. Nel documento A.htm si crea il collegamento all'ancora nominata ANC_NOMIN del documento B.htm
    <A HREF="A.htm#ANC_NOMIN"> link alla sezione B.3 del documento B </A>

ATTENZIONE

Collegamento a sezioni dello stesso documento

La tecnica è esattamente la stessa tranne che il nome del file è ora omesso.

Nota Bene

Il bottone BACK non funziona quando si rimane nello stesso documento.


Mailto

Un lettore può essere facilitato nell'inviare una e-mail nel modo seguente:

<A HREF="mailto:anastasi@iet.unipi.it"> Per scrivere a Giuseppe Anastasi</A>

L'ipertesto Per scrivere a Giuseppe Anastasi crea una finestra per spedire una e-mail.


Immagini incorporate

I browser più evoluti possono visualizzare immagini. NCSA Mosaic e Netscape, in particolare, possono visualizzare le immagini in formato X Bitmap (XBM), GIF e JPEG.

L'uso delle immagini dovrebbe essere valutato attentamente perchè la visualizzazione di un'immagine può richiedere molto tempo. Usare una particolare immagine più volte in un documento è una maniera intelligente di limitare al minimo il rallentamento del processo di caricamento.

NOTA: L'etichetta <IMG> è stata implementata per la prima volta in NCSA Mosaic. Tale etichetta è presente anche in Netscape ma non è implementata in tutti i World Wide Web browsers.

Per includere un immagine in un documento viene utilizzato il seguente formato:

    <IMG SRC="filename.gif" HEIGHT=100 WIDTH=65>

Normalmente il bordo inferiore di un'immagine è allineato con il testo.

Questo testo è allineato con la cima dell'immagine ( <IMG SRC= "phone.gif" ALIGN=top>).

Questo testo è allineato con il centro dell'immagine ( <IMG SRC= "phone.gif" ALIGN=center>).

ATTENZIONE

Alcuni browser (ad esempio quelli che vengono eseguiti su terminali VT100) non possono visualizzare immagini. Per risolvere questo problema HTML fornisce l'attributo ALT che permette di visualizzare un testo alternativo all'immagine.

<IMG SRC= "freccia.gif" ALT = "UP">

Sfondo

Le versioni più recenti di alcuni browser possono caricare un'immagine ed usarla come sfondo.

L'etichetta per includere un'immagine come sfondo è inclusa come un attributo in <BODY>.

Esempio:

<BODY BACKGROUND="phone.gif">

Il colore dello sfondo, del testo e dell'ipertesto può essere cambiato nel modo seguente

<BODY TEXT="#FFFFFF" BGCOLOR="#000000" LINK="#9690CC">

Le combinazioni di lettere e numeri rappresentano le gradazioni dei colori RGB (Red, Green, Blue).


Immagini esterne

Un'immagine può essere anche aperta su un documento separato, quando un utilizzatore attiva un ipertesto.

Questa è considerata un'immagine esterna ed è particolarmente utile se si desidera non rallentare il caricamento del documento con troppe immagini.

Per includere un riferimento ad un grafico in un documento esterno, si usa

    <A HREF = "filename.gif">link anchor</A>

Assicurarsi che l'immagine sia in formato GIF, TIFF, JPEG, RGB, o HDF.


Tabelle

Elementi di una tabella
Elemento Descrizione
<TABLE> ... </TABLE> definisce una tabella in HTML. Se l'attributo BORDER è presente, il browser visualizza la tabella con un bordo.
<CAPTION> ... </CAPTION> definisce la didascalia della tabella. La didascalia viene posta in cima alla tabella. L'attributo ALIGN=BOTTOM può essere usato per posizionare la didascalia sotto la tabella.
NOTA: Nella didascalia può essere usato ogni tipo di etichetta
<TR> ... </TR> specifica una riga all'interno di una tabella. I seguenti attributi possono essere definiti per l'intera riga: ALIGN (LEFT, CENTER, RIGHT) e/o VALIGN (TOP, MIDDLE, BOTTOM).
<TH> ... </TH> definisce una cella intestazione della tabella. Il testo è normalmente centrato ed in grassetto. Queste celle possono contenere altri attributi per determinare le caratteristiche della cella ed i suoi contenuti.
<TD> ... </TD> definisce una cella di dati. Normalmente, il testo è allineato a sinistra e centrato.
Attributi della Tabella
NOTA: gli attributi definiti all'interno di <TH> ... </TH> o<TD> ... </TD> sovrascrivono quelli definiti in <TR> ... </TR>.
Attributo Descrizione

    ALIGN (LEFT, CENTER, RIGHT)

    VALIGN (TOP, MIDDLE, BOTTOM)

    COLSPAN=n

    ROWSPAN=n

    Allineamento orizzontale di una cella.

    Allineamento verticale di una cella.

    Numero (n) di colonne che una cella abbraccia

    Numero (n) di righe che una cella abbraccia

ESEMPIO

<CENTER><TABLE BORDER=2 BGCOLOR="#FFFFFF" > 
<CAPTION> <P>Tabella di prova </P> </CAPTION>
<TR> 
<TH>Nome </TH>
<TH>Data di nascita</TH>
<TH>Luogo di Nascita</TH> 
</TR>
<TR> 
<TD>Franco Rossi</TD>
<TD>9/10/1968</TD>
<TD>Pisa</TD> 
</TR>
</TABLE></CENTER>

Problemi


FORM

I form sono modelli che vengono utilizzati per l'inserzione di dati. I form permettono ad un utente di inserire delle informazioni ed inviarle indietro al proprietario della pagina. L'etichetta <INPUT> è usata per questo scopo.

ESEMPIO

<ACTION> Specifica lo URL a cui sottomettere le informazioni

<METHOD> Specifica il metodo da usare.

Ad esempio la risposta allo schema precedente potrebbe essere:

customer=Giuseppe+anastasi&address=via+Diotisalvi+2
&city=Pisa&state=Italia
&cardno=9889&expires=1997&cc=mastercard

CGI (Common Gateway Interface)

Standard per gestire i dati di un form.

Supponiamo che si voglia rendere una base di dati interessante disponibile ad utenti WWW.

Il modo CGI di fare questo è di scrivere uno script che interfaccia la base di dati al WWW.

Allo script è dato un URL e per convenzione è posto nella directory cgi-bin.

I server HTTP sanno che quando è richiesta l'invocazione di un metodo nella directory cgi-bin devono interpretare il nome del file come quello di un programma eseguibile e lanciarlo.

Quando l'utente preme il bottone SUBMIT, il browser stabilisce una connessione TCP allo URL identificato in ACTION. Il browser quindi invoca l'operazione richiesta in METHOD. Il risultato è che lo script è eseguito con il blocco del messaggio passato come parametro. Inoltre, diverse variabili ambiente sono inizializzate.

Tipicamente, gli script iniziano il loro lavoro controllando i parametri e riportandoli ad una forma più adatta per usarli facilmente.

CGI script possono essere anche usati per produrre uscite in formato grafico.


Per maggiori informazioni

Maggiori informazioni su HTML sono disponibili attraverso i seguenti hyperlinks.


By: Francesco Marcelloni and Giuseppe Anastasi
Novembre, 1996.