HTTP e HTML HTML: evoluzione
WWW 1990: La Web HTTP protocollo che permette di richiedere documenti ipertestuali da un server. HTML linguaggio di markup usabili per rendere documenti ovvero individuare e a abilitare link ipertestuali.
HTML 2.0 Linguaggio basato su elementi di descrizione di caratteristiche (tag) e testo: la caratteristica viene applicata a tutto il testo compreso tra tag aperta e tag chiusa <TAG>testo</TAG>
HTML Caratteristiche generali: Non è case sensitive Non tutte le tag aperte vengono chiuse Tutte le tag sconosciute vengono ignorate Tutti gli “a capo” vengono mutati in spazio Più spazi o tabulazioni vengono collassate in un singolo spazio
HTML 2.0 La prima versione conforme alla sintassi SGML <!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
Struttura di un documento HTML Nota: l’HTML non è case sensitive <!-- HTML --> <html> <head> <title>Titolo della pagina</title> </head> <body> Corpo della pagina, visualizzato dal browser </body> </html>
Definizione di intestazione H1 …H6: sei livelli di intestazione <H1>Livello H1</H1> <H2>Livello H2</H2> <H3>Livello H3</H3> <H4>Livello H4</H4> <H5>Livello H5</H5> <H6>Livello H6</H6>
dir directory list (deprecata) menu menu list (deprecata) Tipi di lista dir directory list (deprecata) menu menu list (deprecata) ul Unordered list ol ordered list <ol> <li> primo <li> secondo <li> terzo </ol> <ul> <li> primo <li> secondo <li> terzo </ul>
Liste di definizione DL DT:Definition Term DD: Definition Entry Tipi di lista Liste di definizione DL DT:Definition Term DD: Definition Entry <dl> <dt> SGML <dd> Standard Generalized Markup Language <dt> HTML<dd> Hypertext Markup Language <dt> XML <dd> Extensible Markup Language </dl>
<B> Bold <I> Italic <TT> Teletype Tipo di carattere <B> Bold <I> Italic <TT> Teletype Notare gli a capo Carattere normale <b> Carattere Bold </B> <i> Carattere Bold </i> <b><I> Carattere Bold </B></i> <TT>Carattere Teletype</TT> Notare la sequenza
Caratteri speciali < si scrive < > si scrive > I caratteri “<“ e “>” definiscono apertura e chiusura delle tag, Quindi non possono in essere inclusi nel testo. Per risolvere il problema si introduce una sintassi speciale: < si scrive < > si scrive > & si scrive &
Tipologie di frase <em> <strong> <code> <kbd> <var> <samp> <cite> Carattere normale <em> emphasized </em> <strong> strong </strong > <code> code a=1 b=2 </code> <var>variable</var> <samp>sample</samp> <cite>citazione</cite>
Elementi di formattazione <P> <BR> <BLOCKQUOTE> <HR> Esempi di uso di formattazione <P>Questo e'un paragrafo</P> Questo e'un esempio di <BR> forzatura di un a capo <HR> Linea Orizzontale testo <BLOCKQUOTE> testo indentato </Blockquote> continua il testo
Elementi di formattazione Esempio di testo con formattazione forzata <PRE> class demo { public static void main(String a[]) { System.out.println("Hello"): } </PRE> <PRE> Notare la preservazione degli a capo
Url di base del documento corrente Meta data Indicazioni per i robots Nella sezione head: <meta Name=“author” Content=“Marco Ronchetti”> <meta Name=“ keywords” Content=“ =“Sex, Money”> <base HREF=“URL”> Url di base del documento corrente
Link e interni ed esterni Link interno Vi si possono trovare ulteriori <a href=“#altro”>dettagli</a> … <a name=“altro”>Ecco i dettagli</a> Link esterno Vi si possono trovare ulteriori <a href=“URL”>dettagli</a> Immagini Eccone una foto <img src=“URL” alt=“Vista dal basso” align=“top/bottom/center”>. Deprecato!
un eseguibile sul server Mappe clickabili Identifica un eseguibile sul server <a href=“/cgi-bin/imagemap.exe”> <img src=“italia.gif” ISMAP> </a> Mostra la figure italia.gif e passa al server le coordinate (x,y) del punto su cui si é clickato Vedi anche le estensioni HTML 3.2
Forms Danno all’utente la possibilità di inviare informazioni al Web server La tag FORM definisce il modulo e ha il seguente attributi: L’attributo ACTION identifica il programma che processa il modulo L’attributo ENCTYPE specifica tipo MIME usato per passare dati al server (Es. Text/html) Inoltre comprende varie sotto-tag: Può contenere diverse tag per la raccolta dei dati Una tag INPUT dev’essere di tipo SUBMIT per la spedizione dei dati Una tag INPUT può essere di tipo RESET per l’annullamento dei dati inseriti
Form - input <FORM method="POST" action="/cgi-bin/elabora"> Scrivi il tuo nome <Input type="text" size“=25" maxlength="15“ name=“a”> <Input type="submit" value="spedisci"> <Input type="reset" value="annulla"> </FORM> Invia una url di tipo http://…/cgi-bin/elabora?a=MarcoRonchetti&b=…
Form – input type=“radio” <FORM method="POST" action="/cgi-bin/elabora"> Fai la tua scelta: <LI><Input type="radio" name="tipo" value="auto" checked>Auto value="bus">Bus value="camion">Camion <P><Input type="radio" name="colore" value="rosso">Rosso <Input type="radio" name="colore" value="argento" checked>Argento</P> <Input type="submit" value="spedisci"> </FORM>
Form – input type=“checkbox” - select <FORM method="POST" action="/cgi-bin/elabora"> Fai la tua scelta: <LI><Input type="checkbox" name="tipo" value="auto" checked>Auto name="tipo" value="bus">Bus name="tipo" value="camion">Camion <P><Select name="colore"> <option>Rosso <option selected>Argento </select></P> <Input type="submit" value="spedisci"> </FORM>
Form – textarea <FORM method="POST" action="/cgi-bin/elabora"> Scrivi i tuoi commenti: <Textarea name="commenti" rows="4" columns="14"> Spiega in questo spazio la tua opinione </TEXTAREA> <Input type="submit" value="via!"> </FORM> Notare gli spazi
HTML 3.2 Ampiamente supportato dalla maggior parte dei browser e degli editor HTML <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 Final//EN”> Aggiunge supporto per le tabelle, Applets, stilizzazione del testo, client-side image-based linking e per la strutturazione del documento.
Trattamento delle immagini Vengono introdotte evoluzione di allineamento usando l’attributo Align: a top, bottom, center si aggiungono left e right Nuovi attributi includono: Border (spessore del bordo attorno all’immagine) Vspace (spazio extra in verticale) Hspace (spazio extra in orizzontale) Width (larghezza dell’immagine) Height (altezza dell’immagine) <IMG SRC=“file” ATTRIBUTO1=“Valore” … > Informa il browser delle dimensioni così da permettere la formattazione della pagina prima che l’mmagine sia scaricata
Trattamento delle immagini Viene introdotta la gestione delle immagini clickabili sul lato client <IMG SRC="a.gif" usemap="#mymap"> ... <MAP name="mymap"> <area shape="rect" coords=“150,50,250,150" href="rect.html" alt="scatola"> <area shape="circle" coords=“250,350,50" href="wheel.html" alt="ruote"> </MAP> 50 150 250
Tabelle Bordi: <table border=“0”> nessun bordo <table> Nessun bordo, ma spazio per bordo allocato <table border=“10”> Bordo di dimensione 10 <table border> Corrisponde a border=“1” Spaziatura tra le celle: <table Cellspacing=“5” > Default = 2 Titolo: <caption align=“bottom”>Titolo</caption>
Tabelle Le tabelle sono strutture basate sulle righe Ogni righe di dati è inclusa in un elemento <TR> Ogni cella è inclusa in un elemento <TH> (intestazione) oppure <TD> (dato) Larghezza e altezza di una cella possono essere suggeriti con gli attributi Width e Height. Il contenuto di ogni cella può essere allineato orizzontalmente (align=left,center,right) e verticalmente (valign=top,center,bottom)
Tabelle Genere ogni cella occupa un’area individuata da una colonna e una riga, mai possibile fare in modo che una cella si estenda su più colonne e/o righe Usando di attributi colspan e rowspan.
Tabelle <table border> <caption align=bottom>LIVELLI DI PERICOLO</caption> <tr><th>colore<th>stato<th>Livello</tr> <tr><th>rosso</th><td>Pericolo</td><td>1</td></tr> <tr><th>giallo <td rowspan="2" valign="center" align="center">ok <td>2</tr> <tr><th>verde<td>3</tr> </table>
Tabelle <table border cellpadding=5> <table border> <table border cellspacing=5>
Deprecato in HTML 4.0 Supporto di Java <applet code=“Name.class”height=“150” width=“300”> <param name=“time” value=“100”> <param name=“color” value=“red”> Questo Browser non supporta le applets </Applet> Deprecato in HTML 4.0
Stilizzazione del testo Viene introdotto un parametro applicabile alla maggior parte delle tag: ALIGN=“LEFT-CENTER-RIGHT” e la tag CENTER che ha funzione analoga Viene introdotta una tag per raggruppare elementi di testo a cui applicare gli stessi parametri: DIV
Stilizzazione del testo Inizio <div align=right> Hello <P> Paragrafo </P> <CENTER>Testo centrato </CENTER> Bye </div> Fine
Stilizzazione del testo: Body bgcolor=“#FF0000" colore dello sfondo - deprecato background=“URL“ immagine di sfondo - deprecato text =“#0000FF“ colore del testo - deprecato link=“#00FF00" colore dei link – sconsigliato vlink =“#00FF00“ colore dei link visitati – sconsigliato > … </body>
Stilizzazione del testo: Font face="Times Roman", serif" color="Red" size="18"> Hello </font> Deprecato in HTML 4.0 Nota: alternativamente si possono fare resize incrementali: size=“+2">
Ufficializzazione Le tag SCRIPT e STYLE vengono ufficializzate, anche se ancora non viene definito l’esatto funzionamento delle stesse. SCRIPT introduce la possibilità di avere codice La cui esecuzione è a carico dal browser (es. Javascript) STYLE introduce il concetto di formattazione da applicare al documento separatamente dal contenuto del documento stesso
HTML 4.0 Rilasciato nel dicembre ‘97 <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4.strict.dtd”> Standardizza il supporto dei frame, estende il modello di tabelle, estende il modello dei form, aggiunge l’evidenziazione della variazione di contenuto, l’identificazione di oggetti generalizzati non HTML, alcune generali descrizioni di testo. Formalizza l’uso di elementi script e style. Per la prima volta la definizione dello standard precede l’implementazione!
Script Identifica un contenitore di codice riconoscibile ed eseguibile da parte del browser. <script type=“text/javascript” language=“javascript”> <!-- function ciao() { alert(“hello world”) } //--> </script> La funzione è attivabile da eventi associati con elementi Visualizzati (Onmouseover…)
Style Identifica un contenitore di un foglio di stile. Va incluso solo nella sezione <HEAD> <STYLE TYPE="text/css"> a {color:red} p {font-size:18} </STYLE>
Stilizzazione del testo Vengono introdotti attributi applicabili alla maggior parte delle tag: ID fornisce all’elemento un nome tramite il quale può essere referenziato TITLE associo una descrizione all’elemento. Normalmente non è visibile. CLASS dichiara l’appartenenza dell’elemento ad un gruppo (classe) usabile per definirne caratteristiche comuni. STYLE attribuisce uno stile all’elemento. LANG dichiara una lingua per l’elemento DIR specifica la direzione della scrittura (ltr o rtl)
Stilizzazione del testo: ID e STYLE <p id="trento" style="color: red"> Paragrafo su trento... </p> <BR><BR><BR><BR><BR><BR><BR><BR><HR> Vedi <a href="#trento">Trento</A>...
Descrizione del testo (*) Ad uso dei robot Abbreviation (*) ...talk to <ABBR title="mister">Mr.</ABBR> Smith <HR> ...there are <del>eight</del> <ins>seven</ins> days left to Christmas <HR> ...the <acronym title="World Wide Web">WWW</acronym> exploded in 1995 Amleto disse: <Q>Essere o non essere</Q> Delete/insert Acronimo (*) Quote (*)
Miglioramenti alle Tabelle Nelle tabelle viene introdotto il concetto di: Header THEAD Body TBODY Footer TFOOT Se la tabella diventa molto grande, lo scorrimento (scroll) avviene solo sul Body mantenendo fissi Header e Footer. Vi sono poi diverse utilità per formattare omogeneamente gruppi di celle (tag col e colgroup, attributi align di tr e di tbody) e per lavorare con sotto celle (tag entry)
Miglioramenti alle Form Viene introdotta la possibilità di usare il tasto TAB per muoversi tra i campi (l’attributo Tabindex=“n” specifica l’ordine della visita) Viene data la possibilità di usare delle scorciatoie da tastiera (l’attributo Accesskey=“carattere”specifica il tasto da premere in combinazione con il tasto ALT) Si possono inoltre rendere attivi degli elementi di input tramite la Tag LABEL: nel codice che segue la digitazione di un RETURN nel campo di testo attiva l’azione senza premere bottoni. <FORM method="POST" action="/cgi-bin/elabora"> Scrivi il tuo nome <label><Input type="text" name=“a”></label> </FORM>
Frames Usando i frames lo schermo é diviso in aree,a ciascuna delle quali è possibile far corrispondere un diverso documento (attributo src). Vanno usati con grande attenzione perché è possibile disorientare l’utente e perché si possono fare ’pasticci’ di varia natura. Quando si usano i frames la sezione body viene sostituita da una sezione frameset che ha il compito di definire come la pagina viene suddivisa. Il contenuto dell’eventuale tag noframes viene ignorato, ed usato solo da browser non abilitati ai frames.
Frames <FRAMESET rows="50%, 33%, 16%"> <FRAME name="alto" src="..."> <FRAME name="main" src="..."> <FRAME name="basso" src="..."> <NOFRAMES>Sul tuo browser i frames non sono riconosciuti. Una questo indirizzo: <A HREF="noframes"> http:.../noframes</A> </NOFRAMES> </FRAMESET>
Frames Il frameset può essere organizzato per colonne (cols=…) oppure per righe (rows=…). Lo spazio può essere riservato in forma assoluta (50), percentuale (50%) o proporzionale (2*,*). <FRAMESET cols="50%, 100, 2*, *"> <FRAME name="sx" > <FRAME name="main" > <FRAME name="dx1" > <FRAME name="dx2" > </FRAMESET>
Frames Il frameset può anche essere chiamato ricorsivamente <FRAMESET cols="50%, 100, 2*, *"> <FRAMESET rows=3*,2*,1*> <FRAME name="su" > <FRAME name="centro" > <FRAME name="giu" > </FRAMESET> <FRAME name="main" > <FRAME name="dx1" > <FRAME name="dx2" >
Frames A ciascun frame si può associare un nome (attributo name). Il nome può poi essere utilizzato all’interno di un link (attributo target) per indicare che l’oggetto di quel link va visualizzato nella sottofinestra (frame) specificata. Il nome top è associato alla finestra intera. <A HREF=“URL” TARGET=“dx1”>…</A>
Oggetti Viene introdotta la tag OBJECT per fornire al browser informazioni utili a caricare o visualizzare tipi di dati non supportati nativamente (applets, plugins, Controlli Active-X ecc.) Una eventuale tag PARAM al suo interno permette di passare parametri alla applet o plugin. <OBJECT HEIGHT=… WIDTH=… CLASSID=…> <PARAM NAME=… VALUE=…> </OBJECT>
HTML TESTING & REFERENCE All’indirizzo: http://www.w3.org/MarkUp/html-test/Overview.html trovate servizi di validazione delle pagine HTML http://www.w3.org/MarkUp/ trovate le pagine ufficiali sull’HTML, sempre aggiornate.
DHTML Per DHTML (Dynamic HTML) si intende l’insieme di: HTML 4.0 CSS – CSS/P (Cascading Style Sheet) DOM (Document Object Model) ECMA (JavaScript)
XHTML 1.0 Ridefinizione di HTML come un’applicazione XML invece che SGML. Vedere http://www.w3.org/TR/xhtml1/ Non introduce nuove caratteristiche rispetto ad HTML 4.0 ma pone dei nuovi vincoli.
XHTML 1.0 - vincoli Ci DEVE essere una dichiarazione di tipo DOCTYPE All’inizio del documento: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd">
XHTML 1.0 - vincoli Le tag e gli attributi devono esser scritti in minuscolo. Gli sttributi devono stare tra virgolette A ogni tag aperta deve corrispondere una tag di chiusura, o Le tag “vuote” devono essere terminate con una \ (Es. <img src=“URL” \> ) Il corpo degli script deve stare in una sezione CDATA <script> <![CDATA[ ... unescaped script content ... ]]> </script>