Guida html
Guida html
Questo sito utilizza cookie, anche di terze parti. Se vuoi saperne di più leggi la nostra Cookie Policy. Scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.I testi seguenti sono di proprietà dei rispettivi autori che ringraziamo per l'opportunità che ci danno di far conoscere gratuitamente a studenti , docenti e agli utenti del web i loro testi per sole finalità illustrative didattiche e scientifiche.
Introduzione HTML
Html (HyperText Markup Language) è il linguaggio standard per la creazione di pagine strutturare per il Web, in grado di essere interpretate da un browser, un software tramite cui è possibile effettuare una connessione ad Internet per mezzo del protocollo http (HyperText Transfert Protocol), intraprendendo una comunicazione con un server Web.
In poche righe abbiamo già parlato di cose che, i meno avvezzi, non conosceranno e non potranno capire al volo, mi vorranno quindi perdonare il lettori più esperti, ma spendere qualche parola introduttiva mi pare cosa dovuta, è possibile considerarla una piccola ripetizione.
Linguaggi di markup e linguaggi di programmazione
Un linguaggio di markup, di cui l'Html ne è il maggior esponente, si differenzia da un linguaggio di programmazione, in quanto il suo solo scopo è quello di utilizzare una serie di comandi marcatori chiamati Tag per formattare una pagina e renderla stilisticamente pronta ad ospitare immagini e grafica.
Un linguaggio di programmazione, invece, permette di creare programmi per mezzo di cui un utente possa interagire e scambiare dati ed informazioni col programma stesso, o con altri utenti, il tutto in maniera dinamica.
Browser Web
I browser Web altro non sono che software in grado di interpretare il codice Html che compone una pagina Web, sia essa presente su di un server Web, sia essa sull'hard disk del nostro PC.
I più utilizzati sono Microsoft Internet Explorer (che da ora in poi chiameremo MSIE) e Netscape Navigator (da ora in poi NN).
Per questioni commerciali tra le case fornitrici di software, non tutto quello che è l'Html è compatibile con tutti i browser, esistono Tag o intere porzioni di codice che funzionano solo con un tipo di browser rispetto ad un'altro, o addirittura solo con versioni più aggiornate del browser stesso.
In questo manuale focalizzeremo l'attenzione su MSIE, che, anche se non sarà il miglior browser sul mercato, è il più diffuso; tuttavia saranno analizzate anche le caratteristiche riguardanti NN.
Il protocollo http
Prima di entrare nei dettagli del protocollo http, iniziamo con una semplice spiegazione di cos'è un protocollo informatico e perchè viene utilizzato.
Pensiamo ad un protocollo come ad un insieme di regole che permettono a due computer di comunicare.
Tutti siamo, chi più chi meno, siamo dei navigatori Internet; per reperire una pagina scriviamo nella barra degli indirizzi qualcosa del genere: http://www.lucaruggiero.it
Questa è una URL (Unite Resource Locator), ovvero un indirizzo Internet che ci consente di arrivare ad un file presente su un computer da qualche parte nel mondo, ovvero un server Web. Questi due argomenti saranno ampliati a breve.
Proviamo a salvare sul Desktop del nostro PC un file creato col Word e chiamiamolo esempio; proviamo poi a cliccare su "Start" sul nostro PC, scegliamo la voce "Esegui", digitiamo C:\WINDOWS\Desktop\esempio.doc e clicchiamo su Ok. Si aprirà il file che abbiamo creato.
In questo caso non abbiamo bisogno di ricorrere ad un protocollo perchè stiamo inviando una richiesta dal nostro PC a se stesso; se il file esempio.doc non fosse presente sul nostro hard disk, bensì su un server Web, dovremmo ricorrere al protocollo http e scrivere http://nomeserver/esempio.doc, o qualcosa del genere.
I server Web
I server Web sono programmi in grado di ospitare pagine Web e di inviarle al browser di un utente che le richiede.
Dato che questo Sito tratta prevalentemente linguaggi e tecnologie di casa Microsoft, non che io sia un amante, premetto che focalizzerò l'attenzione sulle sue componenti.
I server Web vengono installati su dei server, intesi come PC, connessi ad internet 24 ore su 24 con installato un sistema operativo ad hoc, come ad esempio Windows NT Server o Windows 2000 Server.
I più noti server Web di casa Microsoft sono IIS (Internet Information Service), quello che ospita tutti i siti pubblicati su server Microsoft, e PWS (Personal Web Server), versione ridotta di IIS, destinato ad un uso domestico.
Quando ci colleghiamo ad un sito Internet, non facciamo altro che chiedere ad un server Web di inviarci la pagina che desideriamo visualizzare e lui, se trova la pagina, da personcina educata ce la invia, oppure, in caso non la trovi o la pagina non esista, ci manda una pagina di errore.
Indirizzi Internet: le URL
Come già accennato, le URL sono degli indirizzi Internet. Non risciolgo l'acronimo perchè, vi assicuro, non è di vitale importanza ricordarlo!
Collegandovi a questa pagina, dunque, avete digitato una URL... ma probabilmente sarete arrivati a questa pagina dalla pagina principale, quindi forse non è vero che l'avete digitata voi!
Le URL relative sono indirizzi "incompleti", ma che tuttavia restituiscono la pagina che cerchiamo. La pagina iniziale di questo sito, ad esempio, è raggiungibile all'indirizzo http://www.lucaruggiero.it, ma la pagina vera si chiama default.htm.
Le URL assolute, invece, seguono il percorso completo di un file fino alla sua posizione esatta: la pagina iniziale di questo sito è http://www.lucaruggiero.it/default.htm e questa pagina, invece, si trova all'indirizzo http://www.lucaruggiero.it/html/manuale.asp
Spese tante parole sulle URL, analizziamone una nelle sue più piccole forme:
http://www.lukeonweb.net
http:// - protocollo di comunicazione www - World Wide Web, ovvero servizio di interscambio di file Html da un server Web ad un browser Web lukeonweb- dominio Web, ovvero un nome univoco ed identificativo di un sito .net - suffisso di un sito: il dominio "lukeonweb" ad esempio, è univoco come "lukeonweb.net". Sarà possibile, ad esempio, creare un nuovo dominio del tipo "lukeonweb.com".
I suffissi standard sono .net, utilizzato per siti di natura generica, .com, per siti di tipo commerciale, .org, per siti di organizzazioni, .info, nuovissimo suffisso, simile al .net; ogni paese poi ha un suo suffisso, ad esempio in Italia esiste il .it, in Inghilterra il .uk, in Francia il .fr, ecc.
Indirizzi IP
IP è l'acronimo di "Internet Protocol", sono indirizzi numerici, formati in genere da cifre di tre unità separate da un punto.
I domini in formato alfabetico, come lukeonweb.net, sono stati creati per semplificare lo sforzo di memoria per far riferimento ad un sito: è molto più facile ricordare il nome esplicativo di un dominio invece del suo indirizzo IP.
Root
Una root è la cartella principale di un sito, presente su di un server Web. Tutti i file che compongono un sito si trovano all'interno di questa directory e possono essere organizzati in sub-directory, come ad esempio la cartella html che contiene il file che state visualizzando in questo momento.
Conclusioni
Finita questa larga panoramica sul mondo del Web, concludo questo primo capitolo del manuale di Html e rimando i lettori alla prossima puntata, dedicando tutta l'attenzione all'Html, al suo utilizzo ed alla sia sintassi.
Prego di fissare bene questi concetti, dato che dal prossimo capitolo se ne parlerà partendo dl presupposto che il lettore sappia bene di cosa si stia parlando.
Struttura di un file HTML
Nella lezione precedente si è parlato di come avviene una comunicazione attraverso varie componenti di Internet, ora ci accingiamo a creare una pagina Web secondo le specifiche dell'Html.
Per creare un file Html è sufficiente creare un file di testo col Blocco note e salvarlo con un nome qualunque, magari meglio se indicativo, con estensione .html o preferibilmente .htm, a causa del mancato supporto da parte di sistemi obsoleti di file con estensione superiore a tre caratteri.
Salvare il file come Tutti i File [*.*] nella root (lezione precedente) che si intende utilizzare per il proprio sito.
Esempio: salviamo il file iniziale come default.htm oppure index.htm (nomi preferiti per una homepage) nella cartella myweb sul Desktop o nella cartella Documenti.
Fatto questo, troveremo nella root un file con l'icona col simbolo del browser che utilizziamo come predefinito.
Aprendo il file troveremo una pagina vuota. Per visualizzare il codice sorgente abbiamo due possibilità:
1. tasto destro sulla pagina e selezionare la vice HTML
2. selezionare la voce HTML dal menu Visualizza
Aperto il Blocco note possiamo iniziare a scrivere il codice. E' indifferente scrivere il codice Html in maiuscolo o in minuscolo; per questa guida si è scelto di scrivere i Tag in minuscolo.
Iniziamo con la dichiarazione del tipo di documento, il !doctype:
<!doctype html public "-//w3c//dtd html 4.0//en">
Questo codice risulterà a prima vista incomprensibile, ma più avanti con la pratica risulterà semplice anche ricordarlo, tuttavia la dichiarazione è opzionale.
Esaminiamolo: !doctype indica la dichiarazione del tipo di documento, public indica una pagina di un possibile ente o possessore non statale o governativo, l'alternativa è private. il simbolo - (trattino) indica una pagina non certificate ISO, w3c indica l'organizzazione mondiale del World Wide Web, dtd html 4.0 indica la versione ultima riconosciuta dell'Html, en (english) indica che il documento è scritto con Tag in inglese, quindi è fissa!
Creiamo ora la struttura Html per creare una pagina corretta:
<!doctype html public "-//w3c//dtd html 4.0//en">
<html lang="it">
<head>
<title>La mia prima pagina Web</title>
</head>
<body>
<!-- Questo è un commento, questo codice non verrà interpretato dal browser -->
<!--
Questo è un commento su più righe
I commenti sono molto importanti per tenere ordine nel codice, ad esempio
è possibile scriverci cose del tipo:
QUESTO CODICE SERVE PER "QUESTA COSA" E VA AGGIORNATO OGNI DUE GIORNI
o cose del genere!!!
-->
</body>
</html>
Questa parte è di fondamentale importanza, prego di prestare la massima attenzione, ci accingiamo a spiegare la struttura di una pagina Html. Per visualizzare sulla pagina le modifiche al codice è sufficiente "aggiornare", cliccando l'apposito tasto sulla barra degli strumenti del browser o dalla tastiera con l'utilizzo del tasto F5.
Il Tag <html> indica l'apertura della pagina e lang="it" indica che il contenuto della pagina è in italiano.
Ci troviamo subito di fronte ad un concetto interessante, la differenza tra Tag e attributi. Abbiamo spiegato nella lezione precedente cos'è un Tag, ovvero un comando Html che può essere vuoto o avere una chiusura, (ad esempio </html>), un attirbuto invece è una proprietà attribuibile ad uno o più Tag che può avere un valore, come nell'esempio, oppure agire da solo senza necessitare di un valore.
L'attributo lang="it" è comunque facoltativo. Invito il lettore ad una seconda lettura di questa lezione più avanti dopo aver terminato il manuale, molti concetti risulteranno più chiari con l'aiuto di esempi pratici.
Il Tag <head> è fondamentale nella struttura di un documento, indica l'intestazione della pagina ed è possibile includervi codice che deve essere eseguito prima del caricamento completo della pagina.
Il Tag <title> permette di inserire un titolo nell'apposita barra blu del browser in alto, per intenderci sulla stessa orizzontale dove ci sono i pulsantini per chiudere, minimizzare o iconizzare una finestra.
Il <body> rappresenta il corpo della pagina, ovvero da qui inizia la progettazione fisica.
Quest'ultimo presenta una vasta serie di attributi, esaminiamo quelli che ci serviranno per la maggiore:
Atributo |
Descrizione |
bgcolor |
Colore di sfondo della pagina, assume un valore letterale (white), esadecimale (#FFFFFF) o RGB (255,255,255) |
background |
Permette di inserire un'immagine di sfondo nella pagina, richiamando, ad esempio, il file "sfondo.jpg" oppure "sfondo.gif" |
text |
Permette di definire il colore del testo per tutta la pagina |
link |
Permette di definire il colore dei link per tutta la pagina |
alink |
Permette di definire il colore dei link attivi per tutta la pagina |
vlink |
Permette di definire il colore dei link già visitati per tutta la pagina |
topmargin |
Permette di definire la distanza tra il bordo superiore della pagina dagli elementi che contiene, utilizzando un valore numerico |
leftmargin |
Permette di definire la distanza tra il bordo sinistro della pagina dagli elementi che contiene, utilizzando un valore numerico |
rightmargin |
Permette di definire la distanza tra il bordo destro della pagina dagli elementi che contiene, utilizzando un valore numerico |
bottommargin |
Permette di definire la distanza tra il bordo inferiore della pagina dagli elementi che contiene, utilizzando un valore numerico |
onLoad |
Permette di far verificare un evento al caricamento della pagina |
onContextMenu |
Col valore "return false;" inibisce l'utilizzo del tasto destro del mouse sulla pagina |
scroll |
Permette di agire sulle barre di scorrimento, col valore "Yes" le lascia li dove sono (predefinito), col valore "No" le elimina e col valore "Auto" le visualizza solo se la pagina è abbastanza lunga da richiederle |
style |
Permette di definire uno stile per lo sfondo o per le caratteristiche della pagina non attribuibili ai singoli elementi (vedi Manuale CSS) |
Nota: nessuno di questi attributi è obbligatorio, servono solo a rendere il sito meglio formattato ed accattivante, lascio alla fantasia ed alle conoscenze del lettore la possibilità.
Vediamo un esempio di come si utilizzano gli attributi, esempio generico che tornerà utile per tutti i Tag Html:
<tag attributo="valore" attributo="valore">
Per testare quanto imparato prego i lettori di effettuare la seguente prova: creare un file col nome default.htm e di impostare il colore di sfondo nero, il colore del testo bianco (nomi dei colori in inglese), distanza dal bordo destro "50", inibire l'utilizzo del tasto destro del mouse e nascondere le barre di scorrimento solo se non necessarie.
Dalla prossima lezione ci renderemo conto al 100% della validità di questo esempio.
Inserimento di elementi di testo HTML
Al suo principio l'Html era utilizzato, causa le scarse confronto alle odierne tecnologie, come sistema di scambio di informazioni testuali.
Nonostante le appena citate "evoluzioni della specie", un'eredità che ci viene lasciata è quella di poter utilizzare elementi di testo. Possiamo considerare tre diversi gruppi di elementi di testo:
1. Titoli
2. Paragrafi
3. Elenchi
Tutti con diverse sfaccettature e differenze tra loro e nell'ambito degli stessi.
Inserimento di Titoli
Abbiamo 5 livelli di titoli, tutti definibili allo stesso modo, l'unica differenza che intercorre tra loro è la dimensione del carattere, 1 più grande in assoluto a 5 più piccolo in assoluto.
Vediamo un esempio:
<h1>Titolo di primo livello</h1>
<h2>Titolo di secondo livello</h2>
<h3>Titolo di terzo livello</h3>
<h4>Titolo di quarto livello</h4>
<h5>Titolo di quinto livello</h5>
Nota: gli esempi forniti nella parte iniziale di questo manuale sono solo di natura didattica e privi di uno sbocco pratico, più avanti, acquisite le nozioni più importanti, gli esempi che ci si troverà ad implementare troveranno applicabilità e concretezza.
Ci troviamo di fronte ad un Tag non vuoto, cioè che richiede la chiusura dello stesso, cioè ad <h1> corrisponde </h1> e tutto quello che vi si trova in mezzo farà parte del titolo di primo livello (in questo caso) di cui sopra.
Un Tag chiuso crea un'interruzione di riga, ovvero manderà a capo un prossimo elemento Html.
C'è poi da dire che, e questo vale per tutti gli elementi Html di questo tipo, non c'è differenza tra
<h1>Titolo di primo livello</h1>
e
<h1> Titolo di primo livello </h1>
è a libera discrezione dello sviluppatore indentare (formattare, giustificare, scrivere come vi pare) il codice, purchè risulti chiaro e leggibile., pronto quindi ad essere agevolmente corretto o modificato.
Inserimento di Paragrafi
Nello stesso modo in cui si lavora per i titoli è possibile lavorare per i paragrafi, utilizzando il Tag <p> e </p>.
Vediamo un esempio:
<p>
Questo è un paragrafo ... ... ...
</p>
Per questo Tag consiglio l'indentatura del tipo dell'esempio presentato, cioè mandando a capo il Tag di apertura, il testo, poi il Tag di chiusura, dato che si presume che un paragrafo sia abbastanza lungo da far risultare più comoda la sua stesura in questo modo.
Per quanto riguarda il ritorno a capo sulla pagina, il browser manda automaticamente a capo il testo appena finisce lo spazio a disposizione, ovvero alla fine della pagina Hrml fisica.
Si provi a sostituire nella pagina di esempio il testo di esempio con un passo della Divina Commedia, una barzelletta o comunque un testo abbastanza lungo, scrivendolo nel codice su di una sola riga, e poi a verificarne il risultato.
Inserimento di elenchi puntati e numerati
E' possibile creare elenchi e liste ordinate, come in un normale word processor, iniziamo a vedere come si crea un elenco puntato e su quali caratteristiche possiamo lavorare:
<ul>
<li>Prima voce dell'elenco puntato</li>
<li>Seconda voce dell'elenco puntato</li>
<li>Terza voce dell'elenco puntato</li>
</ul>
La chiusura del Tag <li> è opzionale, ne è tuttavia, per una questione di correttezza sintattica, consigliato l'utilizzo.
Possiamo agire sul puntatore dell'elenco modificandone l'aspetto, utilizzando l'attributo type nel Tag ul: per default il suo valore è disc che può essere modificato in circle (cerchio vuoto) o square (quadrato pieno):
<ul type="circle">
<li>Prima voce dell'elenco puntato</li>
<li>Seconda voce dell'elenco puntato</li>
<li>Terza voce dell'elenco puntato</li>
</ul>
<ul type="square">
<li>Prima voce dell'elenco puntato</li>
<li>Seconda voce dell'elenco puntato</li>
<li>Terza voce dell'elenco puntato</li>
</ul>
E' possibile nidificare gli elenchi puntati ed ottenere un effetto grafico e funzionale ad alto livello:
<ul>
<li>Prima voce dell'elenco puntato</li>
<ul>
<li>Prima sottovoce dell'elenco puntato</li>
<li>Seconda sottovoce dell'elenco puntato</li>
<li>Terza sottovoce dell'elenco puntato</li>
</ul>
<li>Seconda voce dell'elenco puntato</li>
<li>Terza voce dell'elenco puntato</li>
</ul>
Poco differenti dagli elenchi puntati sono gli elenchi numerati, la sintassi è la stessa e le regole di formattazione sono pressochè identiche, l'unico cambiamento è l'utilizzo del Tag <ol> invece di <ul>:
<ol>
<li>Prima voce dell'elenco numerato</li>
<li>Seconda voce dell'elenco numerato</li>
<li>Terza voce dell'elenco numerato</li>
</ol>
Anche qui possiamo agire sul puntatore dell'elenco modificandone l'aspetto, utilizzando l'attributo type nel Tag ol: per default il suo valore è 1 che può essere modificato in a (elenco alfabetico in minuscolo), A (elenco alfabetico in maiuscolo) ed I (elenco con numeri romani):
<ol type="a">
<li>Prima voce dell'elenco numerato</li>
<li>Seconda voce dell'elenco numerato</li>
<li>Terza voce dell'elenco numerato</li>
</ol>
<ol type="A">
<li>Prima voce dell'elenco numerato</li>
<li>Seconda voce dell'elenco numerato</li>
<li>Terza voce dell'elenco numerato</li>
</ol>
<ol type="I">
<li>Prima voce dell'elenco numerato</li>
<li>Seconda voce dell'elenco numerato</li>
<li>Terza voce dell'elenco numerato</li>
</ol>
Possiamo stabilire l'inizio dell'elenco numerato, o quel che sia, utilizzando l'attributo start nel Tag ol, possiamo quindi, ad esempio, stabilire di far partire un elenco numerato da 5:
<ol start="5">
<li>Quinta voce dell'elenco numerato</li>
<li>Sesta voce dell'elenco numerato</li>
<li>Settima voce dell'elenco numerato</li>
</ol>
Altri elementi di testo
Non sono finiti gli elementi di testo che troviamo in Html, esamineremo ora i più usati:
<tt>
<address>
<cite>
<div>
<span>
Si tratta di Tag che prevedono una chiusura.
Vediamo un esempio globale con spiegazione inclusa:
<tt>Testo a spaziatura fissa, non fa differenza
tra lettere di dimensioni diverse come la "m" o la "l"</tt>
<address>Usato per un indirizzo o per una firma</address>
<cite>Usato per una citazione, include il testo in corsivo</cite>
<div>Usato per i fogli di stile Css</div>
<span>Usato per i fogli di stile Css, non prevede ritorno a capo</span>
Nella prossima lezione vedremo tutti i metodi per dare un'estetica al testo e tutti i trucchi per ottenere, con pochi comandi, una formattazione ed una visualizzazione corretta dello stesso.
Formattazione del testo
Nella lezione scorsa abbiamo visto come inserire elementi di testo Html in una pagina Web e ci siamo potuti accorgerci di alcune cose: il colore del testo è impostato per default in nero, il font (carattere) è il Times New Roman, l'allineamento è a sinistra ed ha una certa dimensione.
Colore, dimensione e tipi di carattere per il testo
Vediamo ora come formattare il testo e modificare queste impostazioni di default del browser; per agire sul colore, dimensione e carattere utilizziamo il Tag <font> e </font> ed utilizziamo tre attributi, color (colore), size (dimensione) e face (carattere).
Proviamo a formattare un testo qualsiasi, impostando il colore rosso, una dimensione inferiore a quella di default ed il Verdana come carattere:
<p>
<font color="Red" size="3" face="Verdana">
Testo formattato!
</font>
</p>
Nota: nessuno dei tre attributi è obbligatorio, è possibile decidere ad esempio di cambiare solo il colore, solo il carattere e cosi via.
Impostiamo il font in apertura all'inizio del testo che vogliamo formattare il quella maniera e lo chiudiamo alla fine.
I caratteri, o font, sono dei file con estensione .ttf (True Type Font) che si trovano sul sistema operativo, su Windows '98 nel percorso C:\WINDOWS\Fonts, su Windows 2000 e Windows NT nel percorso C:\WINNT\Fonts, che è una directory di sistema; tengo a puntualizzare questo perchè, se decidessimo di utilizzare un font particolare per una nostra pagina, si corre il rischio che un utente che non ha quel font installato sul proprio PC, non potrà leggerlo e di conseguenza perderebbe parte del senso del sito.
I font più usati e di sicuro presenti su tutti i sistemi, che sono poi quelli che normalmente troviamo sulle pagine Web, sono:
Arial
Arial Narrow
Arial Black
Tahoma
Verdana
Sans Serif
Times New Roman
La categoria Sans Serif indica tutti i caratteri senza grazie, ovvero senza particolari sfumature di stile, di quelli elencati fanno tutti parte di questa categoria, meno il Times New Roman.
All'interno di un Tag <font face="[carattere]"> possiamo inserire più font (intesi come caratteri), separandoli da una virgola e da uno spazio (lo spazio è opzionale), in modo che, in mancanza di uno, troviamo immediatamente il successivo, e cosi via; si consiglia di non inserirne più di tre o quattro:
<font face="Verdana, Tahoma, Sans Serif">
ovvero, "cerca il Verdana, se non lo trovi cerca il Tahoma, se non lo trovi cerca il primo carattere senza grazie ed usa quello".
La dimensione del testo è impostata per default a 3 e possiamo modificarla impostando il size da 1 a 7; un testo con dimensione del carattere impostata a 7 è più grande di un titolo di primo livello <h1>.
Nota: per quanto riguarda il colore, abbiamo ter diversi modi di definirlo, con nomi di colori (in inglese), con Codici Esadecimali e con Codici RGB. Visualizza la tabella dei colori.
Allineamento del testo sulla pagina
Per allineare un testo sulla pagina utilizziamo l'attributo align per tutti gli elementi di testo, i cui valori possono essere left (di default), center e right: quindi <p align="center"> allineerà un testo al centro della pagina.
Si implementi questo esempio in un file già creato per gli esempi scorsi.
Esiste poi il Tag <center> e </center> per l'allineamento al centro di un elemento, a cui però viene preferito l'utilizzo di align.
Grassetto, corsivo e caratteri sottolineati
Possiamo definire lo stile del testo utilizzando il grassetto, il corsivo ed il sottolineato, rispettivamente con i Tag <b> (bold), <i> (italic) e <u> (underline).
Vediamo un esempio:
<p><b>Testo in grassetto</b></p>
<p><i>Testo in corsivo</i></p>
<p><u>Testo sottolineato</u></p>
Interruzione di riga e caratteri speciali Possiamo creare un'interruzione di riga con l'utilizzo del Tag <br> (break), a tanti break corrispondono tanti ritorni a capo:
<p>
Questo testo andrà<br>
a capo!
</p>
Parliamo ora dei caratteri speciali: si tratta di un tipo di simbologia che ci permette di scrivere caratteri che normalmente non saremmo in grado scrivere col proprio simbolo, ad esempio immaginiamo di voler scrivere su di una pagina un Tag Html... normalmente il browser lo interpreta come Tag e lo esegue, ma con l'utilizzo di caratteri speciali questo diventa possibile.
Riporto alcuni esempi:
spazio vuoto ed unificatore
© ©
® ®
< <
> >
» »
« «
Nota: naturalmente questo elenco è incompleto, i caratteri speciali sono moltissimi.
Mi vorrei soffermare per un momento sullo spazio unificatore; il simbolo provoca uno spazio bianco, che normalmente otteniamo digitandolo con la barra spaziatrice della tastiera, ma se ne volessimo ottenere due o più? con la tastiera non è possibile, quindi, inserendo tra due lettere o parole più spazi unificatori, si otterrà una spaziatura maggiore:
<p>C I A O</p>
In più, due lettere o parole con in mezzo uno spazio unificatore, non finiranno mai per andare a capo se si trovano a fine pagina, ad esempio, le parole Hello World cosi scritte non andranno mai a capo.
Inserimento di immagini
Una delle maggiori possibilità offerta dall'Html per rendere una pagina maggiormente professionale, o semplicemente più esplicativa, è l'inserimento di immagini, mediante il Tag vuoto <img>, ricordo che un Tag è vuoto quando non ha la relativa chiusura, in questo caso NON utilizzeremo qualcosa tipo </img>.
Per inserire fisicamente l'immagine utilizziamo l'attributo src (source) passandogli il nome (o percorso) dell'immagine con relativa estensione (ad esempio .jpg).
Prima di fornire qualche esempio e di analizzare tutti gli attributi di questo Tag è necessario chiarire quali sono i tipi di file immagine utilizzabili sul Web:
.jpg - formato a più di 16 milioni di colori, consigliato solo per fotografie che necessitino di una certa nitidità
.gif - più utilizzato sul Web leggero a 256 colori, questi file possono essere anche animati *
.png - simile al precedente, è un nuovo formato definibile come un potenziamento dei .gif
.bmp - valido ma sconsigliato, causa il suo "peso" rallenterebbe notevolmente i tempi di caricamento di una pagina
* I file .gif, come detto, possono anche essere animati, nel senso che è possibile utilizzare programmi che assemblano una serie di file .gif in più fotogrammi che, una volta uniti in un unico file, presentano l'animazione, per spratichirsi in questo ambito.
Vediamo ora un semplice esempio di inserimento di un file immagine su di una pagina Web:
<img src="immagine.gif">
Analizziamo i suoi principali attributi:
border
Consente di impostare un bordo all'immagine, oppure di eliminarlo nel caso in cui l'immagine sia un link (lezione successiva)
<img src="immagine.gif" border="1">
Il suo valore di default, nel caso non sia un link, è zero (0).
bordercolor
Imposta il colore del bordo dell'immagine
<img src="immagine.gif" border="1" bordercolor="#800000">
Per default è nero.
alt
Testo alternativo, utilissimo nel caso in cui l'immagine, ad esempio per un malfunzionamento momentaneo del server Web, l'immagine non venga riportata sulla pagina, fornisce quindi un testo all'interno dell'immagine non trovata, e comunque, al passaggio del mouse sull'immagine, appare un'etichetta gialla contenente il testo descrittivo associato:
<img src="immagine.gif" alt="Testo alternativo">
width
Imposta la larghezza dell'immagine (se omesso l'immagine prenderà le sue dimensioni di default)
<img src="immagine.gif" width="150">
height
Imposta l'altezza dell'immagine (se omesso l'immagine prenderà le sue dimensioni di default)
<img src="immagine.gif" height="150">
vspace
Imposta un distanziamento in verticale tra l'immagine e gli altri elementi Html presenti sopra e sotto l'immagine stessa
<img src="immagine.gif" vspace="30">
hspace
Come sopra, in orizzontale
<img src="immagine.gif" hspace="30">
I link
La principale caratteristica dell'Html è quella di permettere al navigatore di muoversi agevolmente tra pagina e pagina mediante l'utilizzo di collegamenti ipertestuali, tecnicamente più noti come link.
I link sono generati da un Tag detto ancora o area identificato sintatticamente come <a>, il cui unico attributo obbligatori è href (riferimento ipertestuale) che, come il source per le immagini, identifica il file che deve raggiungere, ovvero la URL di destinazione del link.
Come già detto nell'introduzione al manuale, esistono URL relative ed assolute in cui è possibile specificare rispettivamente solo il nome del file o una parte del percorso, oppure l'intero percorso di un file, a partire dalla root fino alla sua identificazione nella cartella in cui risiede.
Utilizziamo questo concetto per fornire due esempi pratici di codice:
<a href="index.htm">Esempio di URL relativo</a>
<a href="http://www.server.it/index.htm">
Esempio di URL assoluto
</a>
Possiamo quindi stabilire che per creare un link dobbiamo inserire il testo che ci interessa che diventi un link tra i Tag ancora.
Il Tag <a> è dotato di alcuni importanti attributi, analizziamoli singolarmente:
target
Serve a specificare se il file di destinazione del link si deve aprire nella stessa finestra, in una nuova istanza del browser (una nuova finestra a se stante) o in un frameset (di questo parleremo più avanti nel corso del manuale).
Esistono alcuni valori predefiniti, _blank apre il file in una nuova finestra, _self è stabilito per default ed apre il link nella stessa finestra, _parent è _top servono a lavorare con i frame, ne parleremo quindi più avanti.
Vediamo un esempio:
<a href="index.htm" target="_blank">Clicca qui</a>
title
Serve a definire un testo di etichetta per il link, ovvero passandoci sopra apparirà una descrizione in un'etichetta, nello stesso modo in cui accade per alt nelle immagini:
<a href="index.htm" title="Descrizione del link ... ... ...">
Clicca qui</a>
name
Serve a creare link ad uno specifico punto di una pagina, sia che si tratti della pagina corrente sia di un'altra pagina, è sufficiente assegnare una nome ad un'ancora ed utilizzare il carattere cancelletto (#) nel link che dovrà raggiungere quel punto della pagina seguito dal nome assegnato al primo link (che non si comporterà in questo caso da tale).
Un esempio servirà a chiarire le idee, creiamo una pagina con un testo qualsiasi contrassegnato da un marcatore <a> con un nome, forziamo la discesa della pagina con una serie di a capo (aggiungetene anche di più di quelli in esempio) ed alla fine della pagina creiamo un link che punti al punto che desideriamo, includendo nell'href #nome_del_primo_link
<a name="esempio">Cliccando sul link arriverai qui</a>
<br><br><br>
<br><br><br>
<br><br><br>
<br><br><br>
<br><br><br>
<br><br><br>
<br><br><br>
<br><br><br>
<a href="#esempio">Clicca qui</a>
Possiamo assegnare un link solo ad un testo o ad un'immagine, racchiudendola tra i Tag area, a questo punto ci torna utile impostare il bordo dell'immagine a zero:
<a href="index.htm"><img src="immagine.gif" border="0"></a>
Le tabelle in HTML
La formattazione di una pagina Html trae il suo massimo beneficio tramite l'utilizzo delle tabelle, un insieme di celle sulla falsa riga del noto programma Microsoft Excel, questa tecnica permette di creare template anche piuttosto complessi.
Per non girare intorno alle parole facciamoci subito un'idea di cosa sia una tabella, copiate dogmaticamente questo codice all'interno di una pagina Html:
<table align="center" width="300" border="1">
<tr>
<td align="center" width="150">Cella # 1</td>
<td align="center" width="150">Cella # 2</td>
</tr>
<tr>
<td align="center" width="150">Cella # 3</td>
<td align="center" width="150">Cella # 4</td>
</tr>
</table>
Questo è quanto ne risulterà:
Cella # 1 |
Cella # 2 |
Cella # 3 |
Cella # 4 |
Una tabella viene generata mediante l'utilizzo di una serie di Tag, il principale dei quali è <table> con relativa chiusura finale </table>, gli altri sono Tag "accessori", nel senso che nulla significherebbero se non inclusi in una serie di istruzioni <table> e </table>, si tratta dei Tag <tr> e </tr>, e <td> che ha come chiusura opzionale (ma consigliata) </td>.
Iniziamo ad esaminare <table>, i suoi possibili attributi sono:
bgcolor - stabilisce il colore di sfondo della tabella, per default è trasparente, si adatta cioè al colore di sfondo della pagina
width - stabilisce la larghezza della tabella, è possibile esprimerla sia in con numeri interi che in percentuale (%)
height - stabilisce l'altezza, poco utilizzato in quanto la tabella sarà alta tot in base al contenuto
align - permette di allineare la tabella al centro, a sinistra (per default) oppure a destra rispetto alla finestra del browser
border - stabilisce il bordo della tabella, per default è zero, è quindi, in caso, inutile stabilirlo
bordercolor - stabilisce il colore del bordo della tabella, per default è grigio
cellpadding - stabilisce la distanza tra i lati interni di una cella e gli elementi Html contenuti in essa
cellspacing - stabilisce la distanza tra le celle
Abbiamo già incontrato i primi sei attributi elencati già in precedenza nel corso del manuale, essendo essi adattabili ad altri elementi Html, mentre gli ultimi due, cellpadding e cellspacing, sono proprietari delle tabelle e si utilizzano esclusivamente all'interno del Tag <table>, proviamo a comprenderne meglio il significato aggiungendoli al codice precedente assegnandogli valori differenti a seconda dei casi:
<table align="center" width="300" border="1"
cellpadding="20" cellspacing="10">
<tr>
<td align="center" width="150">Cella # 1</td>
<td align="center" width="150">Cella # 2</td>
</tr>
<tr>
<td align="center" width="150">Cella # 3</td>
<td align="center" width="150">Cella # 4</td>
</tr>
</table>
Ecco il risultato:
Cella # 1 |
Cella # 2 |
Cella # 3 |
Cella # 4 |
Potremmo invece impostare a zero (0) entrambi i valori ottenendo un effetto totalmente diverso dal precedente ed altrettanto utile a seconda delle occasioni:
Cella # 1 |
Cella # 2 |
Cella # 3 |
Cella # 4 |
L'utilizzo delle tabelle nel Web è davvero massiccio, basta consultare il codice sorgente di questa pagina per farsi un'idea di quante occorrenze dei Tag <table>, <tr> e <td> sono prensenti, consiglio dunque di prestare particolare attenzione a questa lezione, lo scopo sarà, oltre a quello di comprendere la struttura e la tecnica di creazione di una tabella, anche quello di imparare ad utilizzarle al meglio per la costruzione di pagine anche di una certa complessità.
Il codice presentato in questi esempi, già nella sua formattazione mostra una chiara gerarchia che intercorre tra i Tag utilizzati, possiamo dunque stabilire che ogni <tr> permette di definire una serie di celle <td> in orizzontale, per impostare una serie di celle in verticale sarà dunque necessario assegnare una singole cella <td> per ogni coppia di istruzioni <tr> e </tr>.
Impostiamo una tabella con tre celle in orizzontale, utilizziamo dunque questo codice:
<table align="center" width="300" border="1">
<tr>
<td align="center" width="150">Cella # 1</td>
<td align="center" width="150">Cella # 2</td>
</tr>
<tr>
<td align="center" width="150">Cella # 3</td>
<td align="center" width="150">Cella # 4</td>
</tr>
</table>
il risultato
Cella # 1 |
Cella # 2 |
Cella # 3 |
mentre per impostarle in verticale il codice sarà:
<table align="center" border="1">
<tr>
<td>Cella # 1</td>
</tr>
<tr>
<td>Cella # 2</td>
</tr>
<tr>
<td>Cella # 3</td>
</tr>
</table>
il risultato
Cella # 1 |
Cella # 2 |
Cella # 3 |
Il Tag <tr> non è dotato di particolari attributi, supponiamo di avere una tabella, magari di una certa complessità, che vogliamo colorare impostando il colore cella per cella per differenziare parti dedicate ad un argomento piuttosto che ad un altro, quindi non agiremo direttamente sul colore di tutta la tabella, bensì su singola cella, ma ipotizziamo di aver anche bisogno che una serie di celle vicine siano di uno stesso colore, per cui il codice risulterebbe
<table align="center" border="1">
<tr>
<td bgcolor="#FF0000">Cella # 1</td>
<td bgcolor="#FF0000">Cella # 2</td>
<td bgcolor="#FF0000">Cella # 3</td>
</tr>
</table>
è dunque semplice intuire come possa tornare più comodo "colorare" direttamente il <tr>
<table align="center" border="1">
<tr bgcolor="#FF0000">
<td>Cella # 1</td>
<td>Cella # 2</td>
<td>Cella # 3</td>
</tr>
</table>
Le tabelle in HTML
Le tabelle in HTML
Il fulcro della gestione di una tabella è senza dubbio l'elemento "cella" <td> che presenta gli stessi attributi del Tag <table> (ad eccezione di cellpadding e cellspacing), in più ci sono quattro altri attributi, tre dei quali proprietari di questo Tag, esaminiamoli:
valign - vertical align - serve ad impostare l'allineamento verticale del contenuto di una cella
Ipotizziamo di avere tre celle in orizzontale e che il contenuto di una di queste celle sia maggiore (in altezza) del contenuto delle altre, il contenuto di queste si posizionerebbe a metà cella in verticale, effetto che può risultare tremendamente scomodo ed antiestetico in taluni casi, ad esempio in un sito impostato integralmente in tabelle, vediamo un esempio:
<table align="center" border="1">
<tr>
<td>Cella # 1<br>...<br>...<br>...</td>
<td>Cella # 2</td>
<td>Cella # 3</td>
</tr>
</table>
il risultato
Cella # 1 ... ... ... |
Cella # 2 |
Cella # 3 |
Vediamo dunque come impostare il contenuto di una cella sempre al suo inizio in senso verticale:
<table align="center" border="1">
<tr>
<td valign="top">Cella # 1<br>...<br>...<br>...</td>
<td valign="top">Cella # 2</td>
<td valign="top">Cella # 3</td>
</tr>
</table>
il risultato
Cella # 1 ... ... ... |
Cella # 2 |
Cella # 3 |
I possibili valori di valign sono middle (centrato, di default), top (inizio cella) e bottom (fine cella).
Gli altri tre attributi del Tag <td> accennati in precedenza sono:
nowrap - impedisce al contenuto di una cella di andare a capo
<td nowrap>Questo testo non andrà a capo</td>
colspan - unisce due o più celle in orizzontale
rowspan - unisce due o più celle in verticale.
Per sua natura una cella DEVE formare un quadrilatero, non si può pensare di creare quindi una tabella composta da un numero dispari di celle, o meglio, con ad esempio una sola cella nella parte superiore con due celle in quella inferiore... tutte e tre della stessa grandezza! il codice proposto di sotto contiene dunque un ERRORE:
<table align="center" border="1">
<tr>
<td>Cella # 1</td>
</tr>
<tr>
<td>Cella # 2</td>
<td>Cella # 3</td>
</tr>
</table>
questo è quanto ne risulterebbe:
Cella # 1 |
|
Cella # 2 |
Cella # 3 |
Viene comunque generato un quadrilatero con un pezzo erroneamente mancante, è necessario creare una struttura con un numero pari di celle... ma allora non è possibile in nessun caso avere una tabella con un numero dispari di celle?
Si, è possibile.
Ci torna in aiuto l'attributo colspan che viene incluso nella prima cella, il suo impiego è atto a creare virtualmente due celle e ad unirle, vediamo il codice corretto con il relativo risultato finale:
<table align="center" border="1">
<tr>
<td colspan="2">Cella # 1</td>
</tr>
<tr>
<td>Cella # 2</td>
<td>Cella # 3</td>
</tr>
</table>
Cella # 1 |
|
Cella # 2 |
Cella # 3 |
Il valore numerico assegnato a colspan è identificativo per il numero di celle sottostanti, se fossero state cinque celle sotto la cella "unica", il suo valore sarebbe stato colspan="5"
Cella unica (colspan="5") |
||||
Cella # 1 |
Cella # 2 |
Cella # 3 |
Cella # 4 |
Cella # 5 |
Allo stesso modo si comporta rowspan, per però unire celle in verticale, vediamo un esempio:
<table align="center" border="1">
<tr>
<td rowspan="2">Cella # 1</td>
<td>Cella # 2</td>
</tr>
<tr>
<td>Cella # 3</td>
</tr>
</table>
il risultato:
Cella # 1 |
Cella # 2 |
Cella # 3 |
Il meccanismo in questo caso è leggermente più contorto e non immediato come il precedente, il mio consiglio è quello di effettuare centinaia prove, specialmente con quest'ultimo metodo di formattazione delle tabelle che, a dire il vero, è il meno utilizzato.
Formattazione di un'intera pagina in tabelle
L'utilizzo delle tabelle, come predetto, è molto diffuso tra i designer per la realizzazione delle strutture delle pagine, in questo scorcio della lezione riprendiamo in considerazione uno degli esempi finora esaminati ed immaginiamolo come struttura di una pagina:
*LOGO* |
|
MENU |
Corpo della pagina, quest'area sarà dedicata agli effettivi contenuti della pagina, è stato utilizzato uno dei codici già presentati ed è stato lievemente ritoccato... |
Ultimi ritocchi...
Esistono altri elementi facenti parte della famiglia delle tabelle Html, esaminiamoli:
<tbody> - definisce il corpo di una tabella, ad esempio
<table align="center" border="1">
<tbody>
<tr>
<td>Cella # 1</td>
<td>Cella # 2</td>
<td>Cella # 3</td>
</tr>
</tbody>
</table>
<thead> - si comporta come il <tr>, utilizzato per definire aree di intestazione
<th> - si comporta come il <td>, utilizzato per definire le singole intestazioni di una cella evidenziando il testo.
Un esempio:
<table align="center" border="1">
<thead>
<th>Intestazione # 1</th>
<th>Intestazione # 2</th>
</thead>
<tr>
<td>Cella # 1 ... ... ...</td>
<td>Cella # 2 ... ... ...</td>
</tr>
</table>
il risultato:
Intestazione # 1 |
Intestazione # 2 |
Cella # 1 ... ... ... |
Cella # 2 ... ... ... |
I Frame
- Comporre una pagina in frame
Cosa sono i frame; la struttura di un frameset; i frameset annidati
- Attributi dei frames per la visualizzazione
Gli attributi: scrolling, noresize, frameborder, marginheight e marginwidth
- I link in un frameset e il tag noframes
ICome gestire i collegamenti all'interno di un frameset; il tag NOFRAME
- L'iframe
Un particolare tipo di frame: gli iframe o inline frame
- Vantaggi e svantaggi dei frames
Quali motivi per usare o non usare una struttura a Frame
- Impaginare a livelli con i CSS
Un altro metodo di impaginazione: i livelli e i CSS
Comporre una pagina in frame
I frame (“riquadri”) comparvero per la prima volta con Netscape Navigator 2: si tratta della possibilità di suddividere una medesima finestra del browser in vari riquadri indipendenti.
Questa soluzione all’epoca si rivelò un successo, dal momento che permetteva notevoli vantaggi:
- Fino a qualche tempo fa la velocità di navigazione era ben poca cosa, e si navigava con modem analogici molto lenti (anche da 14.4 kbs): i frame hanno l’indubbio vantaggio di non costringere a ricaricare tutta quanta la pagina, accelerando così la navigazione dell’utente all’interno di un sito web. D’altro canto il fatto che solo una parte del contenuto sia ricaricata fa risparmiare banda anche dal punto di vista del server che deve erogare le pagine
- Per quel che riguarda i webmaster, i frame hanno la caratteristica di utilizzare una struttura che consente di non ripetere le parti comuni nelle varie pagine di un sito, dal momento che il contenuto della pagina (per sua natura) è organizzato “a zone”
- Il fatto di poter mantenere fisso su un lato del monitor il menu di navigazione e far scorrere sull’altro lato il contenuto piace a molti utenti, soprattutto quando la risoluzione del monitor è bassa (800 x 600 o 640x480, magari su un monitor da 15’’)
Tutte queste caratteristiche hanno causato un vero e proprio boom dei frames, tanto che subito dopo l’invenzione della Netscape, anche Microsoft si trovò a “copiare” la possibilità di strutturare le pagine in questo modo; in seguito (con l’HTML 4) i frames divennero una specifica ufficiale del W3C.
Struttura di un frameset
Per utilizzare i frame, è necessario creare una pagina che contenga la dichiarazione della struttura che vogliamo utilizzare. Vediamo subito il codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//IT" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>HTML.it</title>
</head>
<frameset rows="50%,50%" cols="50%, 50%">
<frame src="prima.html">
<frame src="seconda.html">
<frame src="terza.html">
<frame src="quarta.html">
<noframes>
<p>Qui può essere indicato il link a
<a href="senzaFrame.html"> una versione del sito</a>
che non utilizzi un layout a frame
</p>
</noframes>
</frameset>
</html>
Come vi sarete accorti, rispetto alle pagine che abbiamo studiato finora cambiano alcune cose. In primo luogo cambia il doctype, cioè il tipo di documento di riferimento.
All’inizio del documento al posto di questa riga:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//IT">
compare ora infatti questa dicitura:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//IT" "http://www.w3.org/TR/html4/frameset.dtd">
stiamo indicando semplicemente al browser che facciamo riferimento alle specifiche che servono per regolare il comportamento dei frame.
Avrete notato inoltre che scompare il tag <body> e al suo posto troviamo il tag <frameset> (“set di riquadri”), che ci permette di indicare come devono essere indicati i frames all’interno della pagina
Il tag <frameset> ha sostanzialmente due importanti attributi: rows e cols:
- rows permette di specificare il numero e la grandezza delle righe, nel caso in cui venga omesso, significa che ci troviamo di fronte a una struttura a colonne . Ad esempio:
<frameset cols="33%, 33%,*">
- cols permette di specificare il numero e la grandezza delle colonne e, nel caso in cui venga omesso significa che ci troviamo di fronte una struttura a righe
<frameset rows="33%, 33%,*">
Nell’indicare la grandezza di ciascuna riga (o colonna) possiamo poi lasciare che una o più righe si auto-dimensionino, occupando tutto lo spazio che rimane, in questo caso utilizzeremo l’asterisco (“wild card”); normalmente invece potremo esprimere la grandezza dei riquadri secondo uno dei seguenti sistemi di misura (da scegliere a nostra discrezione):
|
Una volta creata la nostra griglia con il tag <frameset>, incrociando le righe e le colonne, dobbiamo specificare dove si trova il file di origine di ciascun frame. Possiamo farlo con la sintassi:
<frame src="prima.html">
come si può vedere l’origine di ciascun frame è un documento HTML standard (come quelli che abbiamo analizzato finora): avrà dunque la sua dichiarazione di documento, la sua <head> e il suo <body>.
Se le dimensioni del riquadro non sono sufficienti a mostrare il documento nella sua interezza, il frame avrà delle barre di scorrimento, a meno che non sia stato esplicitamente specificato il contrario negli attributi (che vedremo tra breve).
Per visualizzare il codice HTML di ciascun frame è sufficiente andare nel riquadro desiderato e poi digitare il tasto destro del mouse. Quindi:
- Con Internet Explorer:
selezionare HTML - Con Mozilla:
selezionare this frame > view frame source
È possibile anche individuare un frame in modo più preciso, assegnandogli un nome:
<frame id=”primoRiquadro” name=”primoRiquadro” src="prima.html">
la sintassi corretta per dare un nome a un frame dovrebbe essere:
id=”primoRiquadro”
tuttavia per questioni di retro-compatibilità (con Netscape 4) è oramai entrato nell’uso utilizzare anche name=”primoRiquadro”.
Frameset annidati
È possibile annidare diversi frames l’uno dentro l’altro. In questo caso, al posto di uno dei tag <frame> è sufficiente includere le indicazioni del nuovo frameset. Così:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//IT" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>HTML.it</title>
</head>
<frameset rows="15%,70%,15%">
<frame src="11.html">
<frameset cols="25%,50%,25%">
<frame src="21.html">
<frame src="22.html">
<frame src="23.html">
</frameset>
<frame src="12.html">
<noframes>
<p>Qui può essere indicato il link a <a href="senzaFrame.html"> una versione del sito</a> che non
utilizzi un layout a frame</p> </noframes>
</frameset>
</html>
Attributi del frameset
Il tag frameset non ha (secondo le specifiche ufficiali) attributi per la visualizzazione. Alcuni attributi tuttavia sono entrati nell’uso e sono correttamente supportati dai browser attuali:
|
Attributi dei frame
A differenza degli attributi del tag frameset, che sono dovuti alla convenzione, i seguenti attributi del tag frame sono invece descritti nelle specifiche del W3C e permettono di modificare l’aspetto dei riquadri e il modo in cui l’utente può interagire con essi:
|
Approfondimenti
Ovviamente sarebbe meglio impostare i bordi e gli spazi tra i frame attraverso i CSS. Nella lezione della guida ai fogli di stile dedicata ai bordi con i CSS è spiegato come fare.
Il target dei link in un frameset
In una struttura a frames può apparire difficile caricare il contenuto di un link nella sezione appropriata. Grazie all'attributo target possiamo specificare qual'è la destinazione del link; con questa sintassi siamo dunque in grado di caricare il contenuto di un collegamento nel riquadro che riteniamo più opportuno:
<a href="paginaDaLinkare.html" target="nomeDelFrame">
come si può vedere nell'esempio.
Ci sono poi delle "parole chiave" che ci consentono di ricaricare i link in destinazioni predefinite:
|
Codice |
Descrizione |
target="_blank" |
Apre il link in una nuova finestra, senza nome |
target="_self" |
Apre il link nel frame stesso (è così di default) L'esempio è qui |
target="_parent" |
Il documento viene caricato nel frameset precedente a quello corrente (più esattamente nel frame genitore) |
target="_top" |
Il documento viene caricato nella finestra originale, cancellando ogni struttura a frame. |
Può essere noioso specificare per tutti i link il target appropriato. Ci viene in aiuto allora il tag <base> che ci consente di specificare la destinazione dei tutti link in una sola volta. Il tag va inserito nella pagina contenente i link. Ad esempio:
<base target="_blank">
a questo indirizzo è possibile visualizzare l'esempio completo.
Abbiamo già incontrato il tag <base> per impostare un percorso predefinito di default. Ovviamente è possibile combinare i due attributi di <base>:
<base href="http://www.html.it" target="_blank">
Questa sintassi indica che l'indirizzo di base per i percorsi della pagina è http://www.html.it e che tutti i link vanno aperti in una nuova pagina.
Il tag noframes
All'interno della dichiarazione del <frameset> abbiamo sempre visto comparire l'elemento <noframes>: questo tag serviva per browser particolarmente obsoleti (come Mosaic 2) che non erano in grado di leggere e visualizzare una struttura frameset. In previsione di situazioni di questo genere è possibile inserire all'interno del tag <noframes> un contenuto appositamente studiato per questa eventualità, ad esempio l'avvertimento che il sito è strutturato a frame, o un contenuto alternativo, oppure una descrizione per i motori di ricerca (come vedremo tra breve).
La struttura è la seguente:
<frameset rows="50%,50%">
<frame src="prima.html">
<frame src="seconda.html">
<noframes>
<p>Qui può essere indicato il link a
<a href="senzaFrame.html">una versione del sito</a>
che non utilizzi un layout a frame, oppure un
contenuto alternativo, o anche una descrizione
per i motori di ricerca.</p>
</noframes>
</frameset>
È importante capire una volta per tutte come funziona questo genere di tag, dal momento che un tipo di struttura di questo genere ricorre in diverse occasioni nell'HTML: il tag <noscript> e i contenuti alternativi nel caso dell'<iframe> utilizzano infatti gli stessi principi di funzionamento.
I browser obsoleti non sono in grado di interpretare né la struttura di un frameset, né tanto meno il <noframes>: non essendo un tag previsto nelle specifiche rilasciate all'epoca in cui questi browser sono stati costruiti, si tratta infatti di una sintassi del tutto oscura per loro.
Di tutto il codice in questione l'unica parte comprensibile a questo genere di browser è l'HTML standard compreso all'interno del <noframes>: e questo si limitano a leggere.
Sono invece i browser moderni che sanno di dover ignorare il <noframes>, dal momento che il suo contenuto non li riguarda.
C'è da dire che, se tutti i browser odierni sono in grado di interpretare correttamente la struttura di un frameset, viceversa sotto molti punti di vista i motori di ricerca sono paragonabili a browser obsoleti, e non è raro che un sito organizzato a frame sia inserito nell'indice dei motori di ricerca in maniera non corretta: per questo motivo alcuni di essi "catturano" il contenuto del <noframes> come descrizione di un sito.
Quindi per evitare messaggi di questo genere a seguito di una ricerca in rete:
Figura 1. Messaggio del motore di ricerca per pagine senza "noframes"
è bene utilizzare il tag noframes per indicare la descrizione del sito: in questo modo miglioriamo anche il posizionamento nei motori di ricerca. Ad esempio:
<frameset rows="50%,50%">
<frame src="prima.html">
<frame src="seconda.html">
<noframes>
<p>Su PRO.HTML.it - Approfondimenti sul Web Publishing e articoli per webmaster</p>
</noframes>
</frameset>
“Iframe” significa “inline frame”: in qualsiasi momento in un documento che non utilizzi una struttura a frame è possibile creare un frame al volo grazie a questo tag.
Possiamo specificare la larghezza e l’altezza del tag, mentre gli attributi di visualizzazione sono gli stessi del tag <frame>: si tratta di una vera e propria finestra verso l’esterno all’interno di un documento ordinario.
Questo tag è correttamente supportato da tutti i browser moderni (Netscape 4 non lo supporta, ma questo browser oramai sta scomparendo). La sintassi è:
<iframe src="http://pro.html.it" width="300" height="300">
Contenuto alternativo per i browser che non leggono gli iframe.
</iframe>
Come si può vedere tra l’apertura e la chiusura del tag è possibile specificare un contenuto alternativo per i browser che non siano in grado di leggere l’<iframe>: in realtà questi browser sono ciechi a questo tag (come abbiamo visto per il <noframes>) e dunque leggono direttamente il contenuto al suo interno. Sono invece i browser che supportano questa sintassi a ignorare volutamente quanto viene compreso tra apertura e chiusura del tag.
Anche in questo caso sarò opportuno utilizzare la possibilità di inserire un contenuto alternativo per migliorare il posizionamento nei motori di ricerca. Ad esempio:
<iframe src="http://pro.html.it" width="300" height="300">
<p>Su <a href="http://pro.html.it">PRO.HTML.it</a> -
Approfondimenti sul Web Publishing e articoli per webmaster</p>
</iframe>
Abbiamo già visto all’inizio delle lezioni sui frames quali sono stati alcuni dei motivi di successo dei frames. E cioè:
- Dal punto di vista dell’utente: evitare di ricaricare le parti comuni
- Dal punto di vista del webmaster: includere il layout comune in pochi files
- Dal punto di vista dell’utente: mantenere in vista alcuni punti del layout
Tuttavia gli svantaggi che comporta un uso scorretto di un layout a frame sono superiori ai vantaggi che possono derivare dal loro utilizzo.
I motori di ricerca infatti navigano di link in link attraverso il web per catturare contenuti da indicizzare.
È frequente allora che una struttura a frame sia inserita all’interno di un motore di ricerca in modo errato: a volte viene catturato solo un menù (come in questo caso), altre volte compare soltanto la parte interna con il contenuto del frame e dunque viene perso ogni menu di navigazione (come in questo caso).
Per evitare problematiche di questo genere, è meglio evitare di utilizzare una struttura a frame; o nel caso in cui la si desideri utilizzare è bene prevedere sin da subito dei metodi che ricostruiscano il frameset, nel caso in cui sia catturata soltanto una pagina interna. È possibile farlo utilizzando JavaScript (un linguaggio di programmazione lato-client).
C’è anche da dire che oggi molti dei motivi che rendevano vantaggioso l’utilizzo dei frames sono venuti meno: la banda a disposizione si è ampliata, i CSS alleggeriscono la struttura dei siti e rendono possibile alcune soluzioni che prima erano difficili (come quella di mantenere un menu di navigazione sempre a portata di mano), e la gestione dei contenuti può essere semplificata utilizzando le inclusioni lato server.
Viceversa una struttura a frame risulta molto vantaggiosa nel caso in cui si utilizzino delle vere e proprie applicazioni che utilizzano internet (come le piattaforme di e-learning, la webmail, eventuali aree riservate del sito con accesso tramite login e password). In questo caso la suddivisione dei contenuti evita di sovraccaricare il server (dal momento che così vengono ri-caricati solo le parti strettamente necessari), semplifica la gestione, e quindi si rivela estremamente utile.
Abbiamo già visto due stili di impaginazione: le tabelle e i frame. Come accennato più volte all’interno del corso esiste una terza via: l’impaginazione tramite i fogli di stile (ovvero "CSS", cioè "Cascading Style Sheets", che significa "fogli di stile a cascata").
La sintassi dei CSS esula dall’argomento del corso presente, è importante tuttavia afferrare il concetto che un elemento può essere disposto all’interno della pagina, semplicemente specificando le sue coordinate, o indicando il modo in cui deve essere spostato rispetto agli elementi che lo circondano.
Nel caso dell’impaginazione tramite i fogli di stile abbiamo per lo più a che fare con i tag <span> e <div>, che possono essere accuratamente posizionati e visualizzati specificando ad esempio:
- larghezza
- altezza
- distanza dall’alto
- distanza da sinistra
- colore o immagine di sfondo
- colore, tipo e grandezza dei bordi
- distanza tra il contenuto e il bordo (padding) e tra il bordo e l’esterno (margin)
Per “livello” (o “layer”) in HTML si intende appunto un <div> posizionato tramite i CSS all’interno della pagina.
La sintassi dei CSS è molto diversa da quella dell’HTML solito.
Ad esempio per posizionare la testata di HTML.it a 50 pixel dall’alto della pagina e 200 pixel da sinistra, con lo sfondo a righe, bordo nero, e una dimensione di 600 x 80 pixel di è necessario utilizzare questa sintassi.
Nella <head>:
<style type="text/css">
#logo {
position:absolute;
left:200;
top:50;
width:600px;
height:80px;
background-image: url(sfondo.gif);
border: 1px solid #000000;
}
</style>
nel <body>:
<div id="logo">
<img src="logo.gif" alt="HTML.it" title="HTML.it" width="224" height="69">
<img src="logo1.gif" alt="HTML.it" title="HTML.it" width="59" height="70">
</div>
L’esempio completo si trova a questo indirizzo.
Il vantaggio di questa impostazione è quella di avere una pagina molto pulita: infatti il file HTML è composto soltanto dai <div> (o dagli span) con i contenuti, mentre lo stile di visualizzazione dei contenuti è affidato ai fogli di stile (per lo più espressi in un file separato).
Per gli approfondimenti vi rimandiamo alla guida sui fogli di stile di HTML.it che approfondisce questo argomento.
I Moduli (forms)
- Struttura del tag form
La struttura del tag Form e i suoi principali utilizzi
- Un po' d'ordine: raggruppare i moduli
Come rendere più eleganti e razionali i nostri moduli con il tag fieldset
- Il tag Input
I campi dei form: come utilizzare il tag input
- I bottoni (sumbit, reset, button, image)
Inserire i bottoni o bottoni di immagine per inviare i moduli
- Inserire testo (campo testo, textarea, password)
Inserire nella pagina i campi testuali per l'inserimento del testo
- Consentire delle scelte (checkbox, radio, select)
Permettere all'utente di effettuare delle scelte singole o multiple
- Altri campi (file e hidden)
Come inviare un file o delle variabili nascoste ad un server
- Approfondimenti sui form
Controllare il passaggio da un campo all'altro e gestire il layout dei form
Uno dei fattori che ha decretato il successo del Web è senz'altro la possibilità di interagire: la possibilità cioè di iscriversi a servizi di vario tipo (ad esempio mailing list), ma soprattutto di partecipare a vere e proprie comunità virtuali, come il forum di HTML.it .
Per organizzare questo genere di servizi è necessario raccogliere in qualchemodo i dati dell'utente: per farlo si utilizzano, in maniera molto semplice, i moduli (cioè i form).
L'invio dei dati è solitamente organizzato in due parti:
- una pagina principale che contiene i vari campi dei form, che consentono all'utente di effettuare delle scelte, scrivere del testo, inserire un'immagine
- una pagina secondaria che viene richiamata dalla principale e che effettua "il lavoro" vero e proprio di processare e raccogliere i dati. Di norma sitratta di una pagina di programmazione che si trova sul server. Può essere un cgi, oppure una pagina asp, php, jsp o altro
Noi ci occuperemo della sola pagina principale, dal momento che il modo incui struttura una pagina di programmazione esula dagli obiettivi della presenteguida.
Name e action
Per creare una pagina con dei moduli, bisogna utilizzare l'apposito tag <form>: si tratta di un elemento di blocco, come il <p>, quindi il tag <form> lasciauno spazio prima dell'apertura e dopo la chiusura.
<form name="datiUtenti"action="paginaRisposta.php">
...
</form>
Nel caso in non si desideri avere dello spazio superfluo è possibilemodificare i bordi del tag utilizzando i fogli di stile. Con questa semplice sintassi:
<form name="datiUtenti" style="border:0px"action="paginaRisposta.php">
Come si può vedere, "name" serve per indicare il nome del form, "action" indica l'URL del programma o della pagina dirisposta che processerà i dati.
Grazie all'"action" è anche possibile far sì che i dativengano inviati in e-mail al webmaster (si tratta infatti a tutti gli effetti di un riferimento a un URL). Il codice è questo:
<form action="mailto:tuamail@nomeDominio.it?subject=Oggetto predefinito"
enctype="text/plain" method="POST">
vedremo in una delle prossime lezioni come utilizzare concretamente questa sintassi.
Method
Quando creiamo un form possiamo scegliere due metodi di invio: GETe POST.
Con il metodo GET la pagina di risposta viene contattata e idati vengono inviati in un unico step. Nell'URL della pagina di risposta potremo allora vedere tutti i parametri nella barra degli indirizzi (piùprecisamente nella "query string", cioè nella "stringa di interrogazione") secondo questa forma:
paginaRisposta.php?nome=Wolfgang&cognome=Cecchin&datiInviati=prova+invio
i dati (nella forma nome del campo = valore del campo) sono appesi alla pagina dopo il punto interrogativo.
Alcuni server hanno tuttaviahanno delle limitazioni per quel che riguarda il metodo GET e non consentono di inviare form con valori superiori a 255 carattericomplessivi. Il metodo GET è dunque particolarmente indicato per form con pochi campi e pochi dati da inviare. La sintassi perl'invio in get è:
<form name="datiUtenti" action="paginaRisposta.php"method="GET">
Nel metodo POST invece l'invio dei dati avviene in due stepdistinti: prima viene contattata la pagina sul server che deve processare i dati, e poi vengono inviati i dati stessi. Per questo motivo i parametri noncompaiono nella query string (dunque se non si desidera che i parametri siano mostrati all'utente questo metodo è preferibile).
In questo caso non ci sonolimiti sulla lunghezza dei caratteri. La sintassi è:
<form name="datiUtenti" action="paginaRisposta.php"method="POST">
Enctype (tipo di codifica)
Prima di passare i dati alla pagina di risposta, che si trova sul server, questi vengono codificati dal browser in modo da non poter dare adito ad errori(ad esempio gli spazi vengono convertiti in "+"). Normalmente non è necessario specificare come si vuole effettuare la codifica dei dati, perché è sottintesol'invio di semplice testo.
A volte però, come quando è necessario inviare un'immagine, è tuttavia indispensabile dichiarare espressamente quali dativogliamo inviare. Per farlo è necessario utilizzare l'attributo "enctype" ("encoding type", cioè "tipodi codifica").
Come dicevamo normalmente non è necessario farlo, perché viene sottintesoquesto tipo di sintassi:
<form name="datiUtenti" action="paginaRisposta.php"enctype="text/plain">
Ma nel caso di invio di immagini dovremo dichiarare:
<form name="datiUtenti" action="paginaRisposta.php"method="post" enctype="multipart/form-data">
target
Grazie all'attributo "target" è possibile far aprire i dati del form in una pagina differente rispetto a quella corrente (o in una determinata parte di un frameset):
<form name="datiUtenti" action="paginaRisposta.php" method="get" target="_blank">
Per la loro natura di "raccoglitori di informazioni", i moduli tendono a ingigantirsi e diventare lunghissimi. Per questo, con l'HTML 4 sono statiintrodotti dei tag per fare un po' d'ordine all'interno dei form.
Grazie al tag <fieldset> possiamo creare dellemacro-aree all'interno dei form, e grazie al tag <legend>, possiamo indicare il nome di ciascunamacro-area.
Poniamo ad esempio di dover raccogliere i dati di un utente, raccogliendodati anagrafici, residenza, domicilio e reperibilità sul lavoro.
Possiamo farlo con la seguente sintassi:
<form action=ìì>
<fieldset>
<legend>Datianagrafici</legend>
<br><br><br>
</fieldset>
<fieldset>
<legend>Residenza</legend>
<br><br><br>
</fieldset>
eccetera
</form>
che dà:
Datianagrafici
Residenza
come si può vedere vengono creati dei riquadri con un indicazione del tipo dicontenuto.
Un altro tag particolarmente utile - si può utilizzare con ogni tipo di campoche vedremo d'ora in poi - è il tag <label>, che permette di indicare un'etichetta per il nome del campo.
Ad esempio:
<form action=ìì>
<fieldset>
<legend>Datianagrafici</legend>
<label>Anno di nascita: <input type="text"></label>
</fieldset>
</form>
che dà:
DatianagraficiAnno di nascita:
oppure (cambiando la posizione del testo):
<fieldset>
<legend>Dati anagrafici</legend>
<label><input type="text">: anno di nascita</label>
</fieldset>
che dà:
Dati anagrafici: anno di nascita
Come si può vedere il campo su cui si vogliono dare delle indicazioni deve essere compreso all'interno del tag label stesso.
Il TAG INPUT
Per quel che riguarda i campi dei form il tag più utilizzato è l'<input>, che è senza chiusura. Per specificare undeterminato tipo di campo è sufficiente indicare il tipo di input.
Ad esempio:
<input type="text">
crea un campo di testo.
<input type="button">
crea un bottone.
I vari <input> sono dotati di attributi che consentonodi indicare il tipo di campo, il nome (ad esempio per interagire con JavaScript), e il valore (per lo più il testo visualizzato).
<input type="text" name="tuoTesto" value="qui il tuo testo">
che dà:
I bottoni (sumbit, reset, button, image)
Non c'è form che si rispetti senza bottone di invio. La sintassi tradizionale per creare un bottone di invio è:
<input type="submit" value="invia I dati">
Ad esempio:
<form action=http://www.html.it target="_blank">
<input type="submit"value="visita HTML.it">
</form>
cioè:
Un altro bottone utile è il "reset" che - una volta premuto - consente di riportare il form allo stato originario, cancellando ogni cosa scritta finora dall'utente. Ecco un esempio:
<form action=ìì>
<inputtype="text"><br>
<input type="reset" value="cancella">
</form>
cioè
Esiste infine un tipo di bottone generico, che non esegue nessuna azioneparticolare, ma che può essere ad esempio utilizzato per associare degli eventi tramite JavaScript.
<form action=ìì>
<input type="button"value="bottone generico">
</form>
che dà:
Il tag <button>
Con l'HTML 4 è stato introdotto il tag <button> cheoffre la possibilità di creare dei bottoni con un aspetto particolarmente ricco.
Il tag <button>, a differenza del tag <input>, dà la possibilità di inserire il testo del bottone tra l'apertura e la chiusura del tag medesimo. Questo ci consente di specificare anche del codice HTML all'interno del tag.
I bottoni che abbiamo appena visto dovrebbero dunque avere questa forma:
<form action=http://www.html.ittarget="_blank">
<input type="text"><br>
<buttontype="button">
bottone generico
</button>
<buttontype="reset">
cancella
</button>
<button type="submit">
invia
</button>
</form>
cioè:
Ed ecco un esempio complesso:
<form action=http://www.html.it target=_blank>
<button name="vai" type="submit">
invia
<img src="puntoEsclamativo.gif" width="23" height="67" title="invia adesso" border="1" vspace="5"
alt="invia adesso" align="middle">
<b>invia adesso</b>
</button>
</form>
che dà:
Grazie all'attributo "disable" è infine possibile disabilitare i bottoni.
Es:
<input type="submit" value="invia" disabled>
o anche:
<form action=ìì>
<input disabled="disabled" type="submit" value="invia">
<button disabled="disabled" type=submit>
invia
</button>
</form>
cioè:
Il campo image
Il campo "image" ci consente di utilizzare come bottoni del form delle vere e proprie immagini e assegnare loro un valore grazie a JavaScript; in questo caso non si tratta propriamente di un bottone ma la funzionalità è la medesima. Ecco il codice:
<form action=http://www.html.it target=_blank>
<input name="invia il modulo" type="image" src="invia.gif" alt="invia il modulo" title="invia il modulo" width="78"
height="38">
</form>
cioè:
come si può vedere, se non si specifica nulla, l'immagine ha valore di submit.
Gli attributi del campo immagine sono molto simili a quelli del tag <img>.
Inserire testo (campo testo, textarea, password)
Per consentire all'utente di inserire del testo è possibile utilizzare un "campo testo". Se il campo è su una singola linea avremo:
<input name="mioTesto" type="text" value="qui il tuo testo" size="40" maxlength="200" />
L'attributo maxlength indica il numero massimo di caratteri che l'utente può inserire, con size si esprimono invece le dimensioni del campo di testo (la larghezza è data dal numero di caratteri).
Se si ha la necessità di indicare un campo che consenta di inserire una grande quantità di testo conviene invece utilizzare una "textarea" (area di testo). Ecco la sintassi:
<textarea name="testo" rows="5" cols="40">
qui puoi scrivere il tuo testo
</textarea>
L'attributo rows indica il numero di righe della textarea, cols il numero di caratteri (cioè di colonne) che ogni riga può contenere.
Come si può vedere, se si vuol indicare del testo predefinito in questo caso bisogna inserirlo fra l'apertura e la chiusura del tag.
Esiste infine il campo password che mostra degli asterischi (o palline) al posto dei caratteri inseriti :
<input type="password" maxlength="8" size="18" value="mia_password" name="mioTesto" />
risultato:
Nota: la codifica fornisce una protezione soltanto per chi eventualmente stia sbirciando sul monitor dell'utente. L'invio dei dati attraverso il Web, se non vengono adottate altre misure di sicurezza, avviene 'in chiaro'.
Possiamo prevedere campi di testo accessibili solo in lettura. Ad esempio:
<input readonly="readonly" maxlength="8" size="25" value="leggere l'informativa" name="mioTesto" />
che risulta:
Oppure possiamo impostare le aree di testo come campi disabilitati:
<input disabled="disabled" maxLength="8" size="25" value="leggere l'informativa" name="mioTesto" />
cioè
Si possono anche selezionare uno o più valori di default:
<form action=ìì>
<input name="html" type="checkbox" value="html" checked="checked"/>
</form>
cioè
ed è possibile disabilitare una casella:
<form action=ìì>
<input name="html" type="checkbox" value="html" disabled="disabled"/>
</form>
cioè:
Radio button
I "radio button" ("bottoni circolari") invece consentono di effettuare una scelta esclusiva. In questo caso quindi una scelta esclude l'altra. Per ottenere questo effetto i campi devono avere lo stesso nome e differente valore:
<form>
<fieldset>
<legend>Linguaggi conosciuti</legend>
HTML<input type="radio" name="linguaggio" value="html"/>
CSS <input type="radio" name="linguaggio" value="css"/>
JavaScript <input type="radio" name="linguaggio" value="javascript"/>
</fieldset>
</form>
che viene così visualizzato:
Anche in questo caso è possibile assegnare un valore di default o disabilitare un pulsante.
<form action=ìì>
<input type="radio" name="linguaggio" value="html" checked="checked" disabled="disabled"/>
</form>
cioè:
Menu di opzioni (select)
Grazie al tag <select> è possibile costruire dei menu di opzioni. In questo caso ciascuna voce deve essere compresa all'interno del tag <option> (la chiusura del tag è opzionale) e il valore deve essere specificato attravero l'attributo "value". Con l'attributo "selected" si può indicare una scelta predefinita:
<form>
<fieldset>
<legend>Siti per webmaster</legend>
<select name="siti" >
<option value="http://www.html.it" selected="selected">www.html.it </option>
<option value="http://freephp.html.it">frephp.html.it </option>
<option value="http://freasp.html.it">freasp.html.it </option>
</select>
</fieldset>
</form>
che da luogo a:
Siccome i menu di scelta tendono a diventare particolarmente lunghi, nell'HTML 4 è stato introdotto il tag <optgroup> che consente di suddividere le varie possibilità di scelta in gruppi tramite l'utilizzo di apposite etichette. Ecco l'esempio:
<form action=ìì>
<select name="siti" >
<optgroup label="siti per webmaster">
<option value="http://www.html.it">www.html.it </option>
<option value="http://freephp.html.it">frephp.html.it </option>
<option value="http://freasp.html.it">freasp.html.it </option>
</optgroup>
<optgroup label="risorse per webmaster">
<option value="http://font.html.it">font.html.it </option>
<option value="http://cgipoint.html.it">cgipoint.html.it </option>
</optgroup>
</select>
</form>
che dà luogo al seguente menu:
Infine con il tag select è possibile impostare anche delle scelte multiple. Come si può vedere, utilizzando l'attributo "multiple" l'aspetto del tag select cambia notevolmente:
<form action=ìì>
<label>Quale siti visiti?<br>
<select name="siti" multiple="multiple">
<option value="http://www.html.it">www.html.it </option>
<option value="http://freephp.html.it">frephp.html.it </option>
<option value="http://freasp.html.it">freasp.html.it </option>
<option value="http://font.html.it">font.html.it </option>
<option value="http://cgipoint.html.it" >cgipoint.html.it </option>
</select>
</label>
</form>
cioè:
Utilizzando il tasto "ctrl" l'utente può così effettuare delle scelte multiple.
Tramite l'attributo "size" si può specificare il numero delle voci che devono comparire nel menu, e conseguentemente regolare l'altezza del menu, aggiungendo o togliendo la barra di scorrimento verticale.
<form action=ìì>
<label>Quale siti visiti?<br>
<select name="siti" size="5" multiple="multiple">
<option value="http://www.html.it">www.html.it </option>
<option value="http://freephp.html.it">frephp.html.it </option>
<option value="http://freasp.html.it">freasp.html.it </option>
<option value="http://font.html.it">font.html.it </option>
<option value="http://cgipoint.html.it" >cgipoint.html.it </option>
</select>
</label>
</form>
che viene così visualizzato:
"size" indica la larghezza del campo. Come si può vedere, a fianco del modulo compare il pulsante "sfoglia" o "browse" (a seconda della lingua del browser dell'utente).
Un esempio concreto
Riprendendo un esempio accennato in precedenza, possiamo vedere come sia possibile consentire all'utente di inviarci il contenuto di un questionario tramite e-mail.
Dal punto di vista dell'utente si aprirà un messaggio che domanda se si vuole inviare una mail, ma ciò è inevitabile se si utilizza questo metodo: per evitare questa eventualità bisognerebbe infatti usare dei programmi che inviino e-mail lato-server.
<form name="datiUtente" enctype="text/plain" method="post" action="mailto:tuamail@nomeDominio.it?subject=Questionario proveniente dal web">/
<fieldset>
<legend>Dati Utente</legend>
<label>Nome: <input name="nome" type="text" size="20" maxlength="30"></label>/
<label>Cognome: <input name="cognome" type="text" size="20" maxlength="30"></label>/
<label>Professione: <input name="cognome" type="text" size="20" maxlength="30"/> </label>
</fieldset>
<br/>
<fieldset>
<legend>Questionario</legend>
<label>Siti visitati:<br>
<select name="siti" size="5" multiple="multiple">
<option value="http://www.html.it">www.html.it</option>
<option value="http://freephp.html.it">frephp.html.it</option>
<option value="http://freasp.html.it">freasp.html.it</option>
<option value="http://font.html.it">font.html.it</option>
<option value="http://cgipoint.html.it" >cgipoint.html.it </option>
</select>
</label>
</fieldset>
<br/>
<fieldset>
<legend>Campo libero</legend>
<label>Lasciami un parere:<br>
<textarea name="parere" cols="20" rows="10">
</textarea>
</label>
</fieldset>
<br/>
<button type="reset">annulla</button>
<button type="submit">invia</button>
che dà luogo a questo form:
L'attributo tabindex
Utilizzando il tasto "tab" della tastiera l'utente può passare da un campo del form all'altro. Per varie ragioni di impaginazione l'ordine così ottenuto potrebbe però non essere quello desiderato. Grazie all'attributo "tabindex" che si applica ai campi dei moduli è possibili specificare in quale ordine deve avvenire il passaggio da un campo all'altro. Il valore di questo attributo può variare tra 0 e 32767. Vediamo un esempio:
<form action="datiUtente">
<fieldset>
<legend>Dati utente</legend>
<table width="300" border="1" cellspacing="0" cellpadding="5">
<tr>
<td>
<label>Nome:
<input tabindex="1" name="nome" type="text" size="30" maxlength="30"/>
</label>
</td>
<td>
<label>Professione:
<input tabindex="3" name="professione" type="text" size="30" maxlength="100"/>
</label>
</td>
</tr>
<tr>
<td>
<label>Cognome:
<input tabindex="2" name="cognome" type="text" size="30" maxlength="30"/>
</label>
</td>
<td> </td>
</tr>
</table>
</fieldset>
</form>
che viene così visualizzato:
come si può vedere, digitando il tasto "tab", l'ordine di passaggio da un campo all'altro non è quello indicato nell'HTML, ma è modificato secondo il valore di "tabindex".
Il layout dei form
Se siete alle vostre prima pagine HTML, può apparire difficile avere il controllo perfetto dei form. Si trovano validi suggerimenti tra gli articoli correlati alla guida:
- I Form: segreti e trucchi di personalizzazione
- I Form: risposte a domande frequenti
Includere elementi multimediali e script
- Premessa: il tag object
Suggerimenti per l'inclusione di file esterni. La sintassi del tag Object
- Includere un file Audio
Inserire un file audio di sottofondo o un elemento del lettore RealOne
- Includere un file Video
Inserire un fimato video e accenni allo streaming sul Web
- Includere un file Flash
Come includere nelle vostre pagine un filmato Flash
- Includere un file Java
Come includere un file Java definendo un testo alternativo
- Includere file di scripting o CSS
Inclusione di file JavaScript, VBScript e CSS
Se volete inserire file multimediali (audio e video), oppure effetti grafici particolari scritti in qualche linguaggio di programmazione, ricordatevi sempre di fare attenzione al peso dei file che state inserendo. Siamo infatti sul web e dunque tutti i file, in un modo o nell'altro, dovranno essere scaricati dal visitatore del vostro sito per essere correttamente visualizzati.
Bisogna anche considerare che - sebbene la banda a disposizione del pubblico si stia allargando grazie all'adsl e alle fibre ottiche - non tutte le zone sono "coperte" da questa tecnologia, e la maggioranza dei visitatori naviga ancora con modem analogici da 56 Kb.
In ogni caso - banda larga o no - inserire ad esempio un file mp3 da 3 Mb come musica di sottofondo sarebbe esagerato anche per una connessione adsl.
Quindi: attenzione al peso dei file che inserite!. Per approfondimenti vi consigliamo la lettura della lezione dedicata alla leggerezza dei siti Web della nostra guida all'Usabilità.
Nelle lezioni successive ci occuperemo di come includere in pagine Web elementi multimediali o file di scripting. Per chi fosse interessato alle inclusioni di file HTML in file HTML rimandiamo all'articolo «Come includere codice esterno nelle pagine web». Per chi volesse invece includere del codice XML in pagine HTML vi consigliamo la lettura dell'articolo: «Data binding client-side con XML Data Islands».
La maggior parte dei file multimediali che vedremo nel corso delle lezioni si inserisce all'interno delle pagine con il tag <object>, che è il tag corretto - secondo le indicazioni del W3C - per inserire elementi multimediali, tanto che nelle specifiche dell'XHTML 2 (l'evoluzione dell'HTML) persino le immagini devono essere inserite tramite questo tag.
Un altro tag che spesso viene utilizzato per la multimedialità è <embed>: si tratta di un elemento che non è nelle specifiche del W3C, ma che è stato a lungo utilizzato, perché supportato sia da Internet Explorer, sia da Netscape Navigator, a differenza di <object>, che ha dei problemi di compatibilità.
Vediamo i principali attributi di <object>:
|
All'interno del tag <object> è possibile specificare una sintassi alternativa per i browser che non leggono questo tag. Inoltre all'interno del tag è possibile specificare eventuali parametri necessari all'esecuzione dell'oggetto.
In molti casi il tag object si occupa di attivare un "plug-in", cioè un componente aggiuntivo che si integra nel browser, per lo più fornito dal produttore del software multimediale (es. Flash), in grado di leggere il file multimediale (qualsiasi esso sia).
Vedremo nelle lezioni seguenti quali sintassi specifiche utilizzare per includere questi oggetti nelle vostre pagine Web.
Includere un file Audio
Per impostare un suono di sottofondo si può utilizzare il tag <bgsound>
Sintassi di <bgsound>
<bgsound src="url del file audio" loop="numero di ripetizioni" />
Basta quindi inserire il riferimento del file audio (es. wav) e lasciare che il suono venga riprodotto:
- una volta: loop="1" oppure omettendo l'attributo loop
- due volte o anche di più: loop="2" basta indicare il numero di ripetizioni desiderato
- infinite volte: loop="infinite"
In realtà questo non è il modo migliore, né il più efficace, per inserire un file audio, perché obsoleto e compatibile soltanto con Internet Explorer.
Un'altro modo obsoleto, ma crossbrowser prevede l'uso di <embed>.
Sitassi di <embed>
<embed src="url del file audio" autostart="true" />
Un esempio in questa pagina.
Se invece vogliamo seguire le specifiche dell'HTML 4.01, utilizziamo il tag <object>.
Sintassi di <object>
<object data="url del file audio" type="audio/wav" autostart="true">
<embed src="url del file audio" autostart="true">
</object>
tuttavia, affinché tutto funzioni perfettamente, spesso conviene indicare il tipo di plugin da utilizzare grazie all'attributo classid.
Vediamo il codice necessario ad aprire la barra del lettore multimediale RealOne (se RealOne non è presente, l'utente verrà avvisato). Notare che all'interno del tag <object> vengono espressi i parametri che indicano come devono essere visualizzati i controlli di RealOne, e la sintassi alternativa per browser obsoleti (indicata tramite <embed>):
<object id="sound1" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95">
<param name="src" value="multimedia/audio/jet_pubb.wav">
<param name="controls" value="All">
<param name="console" value="sound1">
<param name="autostart" value="false">
<embed src="http://html.it/guide/esempi/guida_html/multimedia/audio/jet_pubb.wav"
type="audio/wav" console="sound1" controls="All" autostart="false" name="sound1">
</object>
Quando inserite dei file audio, fate sempre caso ad essere i proprietari dei diritti d'autore, o ad avere l'autorizzazione a utilizzare la musica (o il suono) in questione.
Ricordiamo anche che l'uso di suoni o musica di sottofondo se utilizzata in modo eccessivo può compromettere l'usabilità del sito.
Includere un file Video
Come per l'audio anche per i video si dovrebbe utilizzare il tag <object>. La sintassi è identica a quella dei file audio:
<object data="filmato.mov" type="video/quicktime" width="164" height="140">
<embed src="filmato.mov" type="video/quicktime" width="164" height="140">
</object>
come abbiamo visto per i filmati audio, è possibile utilizzare l'attributo "classid" con gli appropriati parametri per aprire barre di visualizzazione e controlli vari ed eventuali.
Data la grande dimensione che questi file possono raggiungere, per i filmati (ma anche per l'audio) è possibile utilizzare lo streaming attraverso il web. Si tratta di un procedimento che consente di scaricare il filmato gradualmente dal server, a mano a mano che lo si sta vedendo e in modo del tutto trasparente all'utente.
Per maggiori informazioni sullo streaming video, vi rimandiamo alla sezione «streaming» di PRO.HTML.it.
Finora abbiamo visto come inserire singoli filmati audio e video all'interno di una pagina web, se invece volete sincronizzare diversi filmati audio e video, dovete utilizzare un linguaggio apposito che prende il nome di «SMIL».
Includere un file Flash
Flash è un software molto potente sviluppato da Macromedia a partire dal 1996. Si tratta di un programma che utilizza grafica vettoriale: significa che le immagini non vengono descritte attraverso mappe di bit (bitmap), ma attraverso formule matematiche. Per questo motivo i filmati in Flash pesano molto meno della grafica tradizionale, e per lo stesso motivo i colori sono "piatti".
Inoltre, proprio perché le immagini sono espresse da formule matematiche, non c'è il problema dell'effetto "sgranato" dovuto al ridimensionamento proprio della grafica tradizionale, perché i filmati in flash si adattano automaticamente alle dimensioni indicate nel codice HTML (o se le dimensioni sono espresse in percentuale, si adattano alla pagina).
Ovviamente il fatto che le immagini siano espresse grazie a delle formule è una caratteristica di questo software che non tocca minimamente il webmaster, il quale - quando sviluppa filmati in flash - si ritrova ad usare un "normale" software visuale.
I file sorgenti dei filmati (quelli su cui gli sviluppatori lavorano) hanno estensione .fla, i file compilati (quello che si possono vedere in giro per il web) hanno invece estensione .swf (cioè "Shockwave Flash"): è quest'ultimo tipo di file che dovremo inserire dunque nelle nostre pagine HTML.
Per inserire un filmato in flash in una pagina HTML è sufficiente utilizzare la seguente sintassi:
<object type="application/x-shockwave-flash" data="http://html.it/guide/esempi/guida_html/multimedia/flash/bottone_in-out.swf" width="450" height="164">
<param name="movie" value="http://html.it/guide/esempi/guida_html/multimedia/flash/bottone_in-out.swf"/>
</object>
Maggiori informazioni su Flash si possono trovare sul nostro sito dedicato a Flash.
Includere un file Java
Java è un linguaggio di programmazione rilasciato dalla Sun nel 1995, ma in corso di sviluppo sin dal 1991. Il suo successo nel web è dovuto alle famose "applet" (fusione delle parole "application" e "gadget") che permettono di aggiungere interattività alle pagine web.
Le applet Java hanno tracciato la strada verso una migliore esperienza utente per i siti Web. Sono le antesignane dei diversi plugin come il Flash Player, Silverlight e del canvas di HTML 5.
Tutto quello che si può fare con le applet Java oggi lo si può fare anche con Flash o JavaScript e in molti casi si preferisce utilizzare questi linguaggi.
Java rimane una valida alternativa per applicazioni web complesse (ad esempio i dati e i grafici delle quotazioni finanziarie, che devono essere aggiornati in tempo reale), o anche per applicazioni come la chat (i client in Java sono tuttora insuperati).
I file con il codice sorgente hanno estensione .java, i file compilati (da inserire nelle nostre pagine web) hanno invece estensione .class.
Come per tutti i plugin oggi possiamo inserire un applet Java grazie al tag <object> ed una sintassi simile a questa:
<object id="appletLake"
codetype="application/java"
codebase="applet_dir/"
width="500" height="400" >
<param name="image" value="myimage.jpg">
<!--html alternativo -->
<img src="http://html.it/guide/esempi/guida_html/multimedia/java/logo.gif" width="263" height="65" alt="html.it">
<!-- fine html alternativo -->
</object>
Diamo uno sguardo alle proprietà che abbiamo inserito:
Proprietà |
Descrizione |
codetype |
Stabilisce il tipo di oggetto (nel nostro caso application/java) che stiamo inserendo |
codebase |
Indica l'indirizzo della cartella che contiene il file .class della nostra applet |
width e height |
Sono le dimensioni (larghezza e altezza) del box in cui eseguire l'applicazione |
Oltre alle proprietà necessarie a definire l'applicazione da caricare, possiamo utilizzare anche un tag <param> per passare dei valori all'applet. Nel nostro caso le passiamo l'url di un'immagine da visualizzare.
Infine, per coloro che non hanno installato il plugin per la visualizzazione delle applet, abbiamo inserito del markup HTML alternativo, per mostrare comunque l'immagine.
Nota: In passato si utilizzava il tag <applet>, che però, è stato da tempo deprecato dal W3C e può causare anche problemi di visualizzazione su alcuni browser.
Includere file di scripting o CSS JavaScript e VbScript
Cominciamo subito con il dire che JavaScript non è Java. JavaScript è un linguaggio di scripting, eseguito dal browser, che permette di creare interattività all'interno della pagina.
La sintassi JavaScript deve essere inserita all'interno del tag <script>. Così:
<script type="text/javascript">
function ciao()
{
alert ("ciao");
}
</script>
e poi nella pagina:
<input type="button" value="clicca" onClick="ciao()">
che dà il seguente output:
Per imparare a programmare in JavaScript è possibile iniziare con la nostra guida. Inoltre su HTML.it è disponibile una numerosa raccolta di JavaScript pronti da usare così come sono, o utili per prendere spunto e costruire nuove funzioni.
VbScript ("Visual Basic Script") è anch'esso un linguaggio di scripting eseguito dal browser, ma è possibile utilizzarlo soltanto con Internet Explorer.
I CSS (i fogli di stile)
Infine i fogli consentono di impostare il layout di un documento. La sintassi per includerli all'interno della pagina è:
<style type="text/css">
...
</style>
Linguaggi e strumenti
- I meta tag
Come migliorare il posizionamento sui motori. Titolatura, Meta Tag
- Il DocType (DTD)| Guida HTML | HTML.it
Dichiarare la tipologia del documento con il DocType
- Configurare un programma FTP
Come pubblicare i file sul proprio sito con un programma FTP
- Gli editor visuali
Come scrivere una pagina Web. I principali editor WYSIWYG
- Una precisazione sul WWW e sui linguaggi
L'invenzione del WWW e le specifiche dei nuovi linguaggi
- Conclusioni
Validare i propri documenti e continuare ad imparare a costruire siti Web
I meta tag
Adesso che abbiamo terminato il nostro sito possiamo occuparci di farlo trovare dai motori di ricerca.
È utile allora impostare correttamente i meta tag all interno della <head> del documento: si tratta di una serie di parole chiave e descrizioni, che aiutano i motori di ricerca a classificare il sito.
Abbiamo già visto il <title>, che è il titolo della pagina; ma il testo ivi contenuto può comparire anche in seguito alla ricerca in un motore, come titolo del link. Sarà dunque importante impostarlo in modo pertinente:
<title>HTML.it - il sito italiano sul webpublishing</title>
C'è poi il meta-tag "description" che permette di impostare una descrizione sintetica del sito stesso. Anche in questo caso, la descrizione compare talvolta nei risultati della ricerca:
<meta name="description" content="HTML.it - il sito italiano sul Web publishing">
Infine il meta-tag "keywords" permette di indicare alcuni contenuti relativi al sito stesso.
Le keywords (a seconda del webmaster) compaiono separate da virgola, da punto e virgola, oppure senza alcun segno di interpunzione:
<meta name="keywords" content="html wml xml smil javascript js dhtml dynamic xhtml vbscript coldfusion photoshop paint shop pro risorse webmaster webdesigner flash grafica css applet java asp cgi perl guida free corso php mysql tutorial lezioni sql database realizzazione siti web leggi mailing list newsletter gif jpg publishing editor iis webserver apache linux raccolte script news chat forum fogli di stile hdml wap linux mac apple palmari computer c++ delphi visual basic vb vbasic">
È fortemente sconsigliabile l'inserimento di keyword "astute" non relative al contenuto effettivo del sito per migliorare il posizionamento (tipo le ricercatissime "sesso", "mp3", ecc.). Quando i motori di ricerca se ne accorgono, per lo più cancellano il sito dalle loro liste.
Su HTML.it sono presenti molte risorse sull'argomento. L'articolo «I Meta-tag: come scriverli correttamente», ad esempio, è un approfondimento su come impostare i meta-tag.
Un buon posizionamento all'interno dei motori di ricerca è una meta difficile da raggiungere e l'argomento non si esaurisce certo in poche righe. Per cui, se siete interessati all'argomento, è utile consultare i nostri articoli sui motori di ricerca e il topic "Motori di Ricerca e Web Marketing" sul nostro forum.
Il DocType (DTD)| Guida HTML | HTML.it
Finora abbiamo tralasciato l'analisi della prima riga di una pagina HTML (quella che consente di specificare di che tipo di documento si tratta). Il <!DOCTYPE> assume un aspetto di questo genere:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
http://www.w3.org/TR/html4/loose.dtd>
Questa riga fornisce alcune informazioni sul documento:
Elemento |
Descrizione |
HTML |
il tipo di linguaggio utilizzato è l'HTML |
PUBLIC |
il documento è pubblico |
W3C |
il documento fa riferimento alle specifiche rilasciate dal W3C |
- |
(è il segno "meno") le specifiche non sono registrate all'ISO (organizzazione di standardizzazione nternazionale). Se lo fossero state, ci sarebbe stato un "+" |
DTD HTML 4.01 Transitional |
il documento fa riferimento a una DTD ("Document Type Definition" cioè "Definizione del tipo di documento"); la versione di HTML supportata è la 4.01 "transitional" |
EN |
la lingua con cui è scritta la DTD è l'inglese |
Inoltre, se necessario, è possibile specificare l'indirizzo di riferimento a cui è possibile trovare la DTD: per l'HTML non lo si fa quasi mai, perché gli URL a cui trovare la documentazione sono universalmente noti.
Per quel che riguarda l'HTML le indicazioni possibili sono tre:
- Strict: è una DTD particolarmente rigorosa: esclude ogni elemento che riguarda il layout (la cui formattazione è affidata all'utilzzo dei CSS) e non è consentito l'uso degli elementi deprecati:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"
http://www.w3.org/TR/html4/strict.dtd>
- Transitional: è una versione temporanea, per consentire il passaggio da una specifica all'altra. Nella DTD transitionali tag deprecati sono ammeesi. Questa DTD andrà bene nella maggior parte dei casi:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
http://www.w3.org/TR/html4/loose.dtd>
- Frameset. È la DTD che riguarda i frames:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
http://www.w3.org/TR/html4/frameset.dtd>
Nelle ultime versioni il tipo di <!DOCTYPE> utilizzato influisce sulla visualizzazione della pagina da parte del browser. Tale tecnica, chiamata <!DOCTYPE> switch, è una delle principali cause di visualizzazione delle pagine sul Web. A questo argomento HTML.it ha dedicato un lungo e dettagliato approfondimento nell'articolo «Il <!DOCTYPE> ed il <!DOCTYPE> switch nei moderni browser»
Configurare un programma FTP
Abbiamo detto sin dall'inizio che un sito internet, per essere visibile da tutti, deve essere presente su un computer che faccia da server, che sia in grado cioè di distribuire i contenuti di un sito a chi ne faccia richiesta nel web.
È giunto il momento di spostare il nostro sito internet sul server e per farlo dobbiamo utilizzare un protocollo che si chiama FTP ("file transfer protocol").
Per prima cosa, cercate uno spazio web in cui trasferire il vostro sito (ce ne sono di gratuiti, ad esempio su Digiland). Dobbiamo quindi procurarci un programma che ci consenta di trasferire i file in maniera visuale dal nostro computer al computer in remoto. Nella sezione «Download» ce ne sono alcuni: i più famosi sono CuteFtp e WS-Ftp.
Durante la configurazione del programma dovrete inserire alcuni dati che vi fornirà il gestore dello spazio:
- indirizzo ftp del sito
- nome utente
- password
Una volta che effettuata correttamente la procedura di login, non avete che da spostare i file dal vostro computer (di solito alla vostra sinistra) al computer in remoto (a destra).
Se avete impostato i collegamenti in modo corretto - in modo che non facciano riferimento al vostro computer di casa, ma a riferimenti relativi - avete messo il vostro primo sito nel Web!
Gli editor visuali
Finora abbiamo scritto tutto il codice a mano, ma vi accorgerete presto che esistono dei programmi che permetto di inserire immagini, tabelle, frame, form e quant'altro in maniera più intuitiva: si tratta degli editor visuali, quelli che gli anglosassoni chiamano editor WYSIWYG ("What you see is what you get", che significa "ciò che vedi è quello che ottieni").
Ad oggi gli editor visuali più utilizzati sono:
- Dreamweaver della Macromedia: un editor molto potente e pieno di funzionalità, ma forse proprio per questo inizialmente difficile da usare. Sicuramente il migliore.
- FrontPage della Microsoft: è l'editor che tutti solitamente utilizzano, perché incluso nel pacchetto Office. In realtà "sporca" molto il codice, visto che la sua attenzione è concentrata su Internet Explorer.
- Golive di Adobe: negli ultimi anni ha perso notevoli quote di mercato, rimane tuttavia un editor serio e una valida alternativa a FrontPage
Il WWW (Word Wide Web) come lo conosciamo oggi fu inventato da Tim Berners Lee al Cern di Ginevra nel 1991. Egli inventò sostanzialmente tre procedimenti standard grazie ai quali far colloquiare gli elaboratori fra loro:
- HTTP ("Hyper Text Tranfer Protocol"): è il protocollo grazie a cui due computer differenti si scambiano le informazioni
- URI ("Uniform Resource Identifiers") e URL ("Unified Resource Locator"): sono due sistemi per individuare in modo univoco la collocazione di una determinata macchina, di un determinato documento o di una determinata risorsa all'interno del Web. Un esempio di URI è l'indirizzo web http://www.html.it.
- HTML: un linguaggio standard. Oramai dovrebbe essere chiaro di cosa si tratta
Linguaggi di markup
A scanso di equivoci, ecco qui una piccola panoramica dei linguaggi che sono strettamente parenti dell'HTML:
- SGML ("Standard Generalized Markup Language"). in pratica l'HTML è stato scritto seguendo le specifiche di questo linguaggio. L'SGML serve infatti per creare linguaggi di contrassegno. La maggior parte di noi non se ne occuperà mai, ma l'SGML ha fornito la struttura per creare l'HTML
- XML (Extensible Markup Language). L'XML (modellato anch'esso sull'SGML) è nato per superare i limiti dell'HTML: è infatti possibile creare dei tag personalizzati, che si adattino ad ogni esigenza. Questa caratteristica facilita l'interscambio dei dati tra piattaforme differenti grazie all'uso dell'XML.
In pratica si tratta di un meta-linguaggio, in grado di creare altri linguaggi, adattabili per le esigenze più disparate.
Es: il WML (Wirless markup Language) per i telefonini, MathML per descrivere espressioni matematiche, l'SVG (Scalable Vector Graphics) per la grafica vettoriale, lo stesso XHTML - XHTML ("Extensible HyperText Markup Language"): l'XHTML non è nient'altro che la riformulazione dell'HTML come linguaggio XML. Infatti - dopo l'HTML 4.01 - non ci saranno più nuove versione dell'HTML, perché l'HTML si è evoluto in XHTML
A questo punto dovreste essere in grado di costruire i vostri siti con le vostre stesse forze.
È una buona abitudine quella di validare il vostro codice HTML, per vedere se fate degli errori. Per farlo potete utilizzare lo stesso validatore del W3C (che è il più noto), ma ne esistono anche altri.
Se costruire un sito per voi è un'occasione sporadica, questo corso dovrebbe essere abbastanza esauriente per tutto quello che dovete fare. Ma se "da grandi" volete fare i Webmaster, il prossimo passo da affrontare è la «guida ai fogli di stile».
Se poi volete aggiungere effetti grafici particolari ai vostri siti web, potete anche dedicarvi alla «guida a JavaScript».
In ogni caso nel sito HTML.it potete trovare dei validi suggerimenti per i vostri prossimi passi.
Se avete dei dubbi sul codice, potete sempre cercare aiuto nel «forum di discussione di HTML.it».
Alcune Precisazioni
Evitare il ridimensionamento delle immagini in IE 6
MS Internet Explorer 6 ha il "brutto vizio" di dimensionare le immagini ed il fenomeno non è controllabile per default: si corre quindi il rischio di vedere layout sfalsati se non oculatamente ottimizzati.
Esiste un particolare Meta Tag che permette di far fronte al problema, semplicemente impostando l'intestazione AutoSize su Off.
Di seguito il codice:
<meta http-equiv="AutoSize" content="Off">
Sovrapporre un'immagine ad un layer
Sovrapporre un'immagine ad un layer senza posizionamento assoluto
Abbiamo visto con i CSS come sovrapporre più livelli con l'ausilio del posizionamento assoluto. In questo articolo vediamo come sovrapporre un'immagine ad un layer di tipo div senza utilizzo dei Css ma di solo Html:
<div style="border-bottom: Solid 1px #000000; padding: 3px;">
<img src="icona.gif" border="1" align="left" hspace="5">
Inserire qui il testo che deve comparire al fianco dell'icona...
</div>
Il solo utilizzo di align="left" sull'immagine fa si che il livello non sia obbligato ad espandersi in altezza per la grandezza dell'immagine ed evita l'utilizzo di una tabella per affiancare l'elemento testo; il codice Css utilizzato si limita a creare un bordo inferiore ed una spaziatura interna al layer per rendere evidente la sovrapposizione.
L'effetto ottico è davvero interessante!
Selezionare un campo di un modulo cliccando la sua dicitura
Lavorando con applicazioni Windows User Interface, piuttosto che con applicazioni Web, siamo abituati a non dover necessariamente selezionare un pulsante di opzione cliccando sul controllo stesso, ma è possibile accedervi anche cliccando sulla sua dicitura descrittiva. Nell'esempio che segue dobbiamo necessariamente cliccare sul radio-button per selezionare il sesso:
Maschio
Femmina
Potremmo invece cliccare sulle diciture Maschio o Femmina e riuscire lo stesso a selezionare il sesso!
Maschio
Femmina
E' necessario includere il testo della descrizione del radio-button nel Tag <label> e </label> specificando l'attributo for="ID del radio-button"
Di seguito un esempio:
<form name="modulo">
<input type="radio" name="sesso" id="sesso_m" value="M">
<label for="sesso_m">Maschio</label><br>
<input type="radio" name="sesso" id="sesso_f" value="F">
<label for="sesso_f">Femmina</label>
</form>
Utilizzo del Tag <base>
Pensare di realizzare la struttura di una pagina Web col solo utilizzo del linguaggio Html è una scelta in partenza sbagliata, grazie all'utilizzo dei fogli di stile Css possiamo snellire, velocizzare e migliorare il nostro lavoro, tuttavia a volte capita di dover realizzare, per un motivo o per un altro, pagine di una certa semplicità e potremmo prenderci il "lusso" di non ricorrere ai Css: anche in questo caso possiamo snellire e migliorare il nostro lavoro, in questo articolo vedremo come.
Il Tag <base> ci permette di agire in questo senso su alcune componenti della pagina, come ad esempio la dimensione del testo ed il carattere, con i link, con il target di indirizzamento verso un frame o una nuova finestra, ecc...
Il Tag <base> va incluso nell'header della pagina in questione e può essere facoltativamente chiuso tra il Tag </body> ed il Tag </html>, iniziamo con un primo esempio, formattiamo per default la dimensione del testo ed il suo carattere:
<html>
<head>
<title>lukeonweb.net</title>
<basefont size="2" face="Verdana">
<body>
<p>Testo della pagina ... ... ...</p>
</body>
</basefont>
</html>
Attenzione: l'utilizzo di <basefont> non avrà effetto sui testi contenuti all'interno di una tabella Html per quanto riguarda il size del testo, bisognerà specificarlo per singola cella oppure, a questo punto, ricorrere solo per questa sottigliezza ai Css.
Vediamo adesso come lavorare con i link e risparmiare tempo e fatica, supponiamo che si voglia da un sito qualsiasi, ad esempio www.quellochesia.it, creare una pagina con soli link verso questo sito, quindi www.lukeonweb.net, dovremmo per ogni singolo link inserire la URL assoluta del sito esterno.
Mediante l'utilizzo di <base> possiamo snellire il lavoro, vediamo un esempio:
<html>
<head>
<title>quellochesia.it</title>
<base href="http://www.lucaruggiero.it/">
<body>
<p>
<a href="html/trucchi/trucco_06.asp">
LINK VERSO LUKEONWEB.NET
</a>
</p>
</body>
</base>
</html>
Possiamo in questo modo raggiungere la URL assoluta di un sito esterno utilizzando nel link il percorso assoluto, come se il file da raggiungere fosse presente sullo stesso server Web.
Allo stesso modo è possibile impostare il target di un link verso un determinato frame o verso un'altra finestra del browser:
<html>
<head>
<title>quellochesia.it</title>
<base target="_blank">
<body>
<p>
<a href="index.htm">
Apri in una nuova finestra
</a>
</p>
</body>
</base>
</html>
In questo modo è possibile aprire tutti i file di una pagina Web in una nuova finestra senza dover utilizzare in tutti i link.
<a href="index.htm" target="_blank">
Differenza tra i tag testuali <p> e <div>
La differenza sostanziale che passa tra i Tag testuali <p> e <div> è sostanzialmente una: entrambi, al contrario del Tag <span>, comportanpo un ritorno a capo, ma <div> non comporta un'interlinea vuoto che si somma al ritorno a capo.
Mi spiegherò meglio con un esempio:
<p>Hello, World!</p>
equivale a scrivere
<div>Hello, World!</div><br>
Creare tabelle con i bordi curvi
Le tabelle Html, per loro natura, hanno un aspetto poco aggraziato, anche la loro stilizzazione con l'ausilio dei fogli di stile CSS non è delle più semplici, bisogna selezionare cella per cella il bordo, il suo spessore ed il suo colore, complicando non poco la vita dello sviluppatore.
Una soluzione per altro molto sfruttata in molti siti è quella di utilizzare una tabella colorata con delle immagini create ad hoc, possibilmente dello stesso colore della tabella, per simulare l'effetto "bordi curvi", classico effetto che si utilizza per piccoli moduli con funzionalità tipo area di accesso privato, o di login.
Si avvii il proprio programma di grafica e si crei un'immagine lunga quanto la tabella in questione (ad esempio 150 X 25 pixel), con le estremità curve su di un lato, come questa:
Si sfruttino le utility del programma e si capovolga l'immagine, ottenendo questo effetto (oppure la si crei nuova):
Si crei a questo punto, nel caso di un'area di login, una tabella dal seguente aspetto divisa in celle:
|
|
|
|
|
|
|
|
|
Popoliamo queste celle per dar vita alla nostra area di login:
<table width="150" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2"><img src="bordo_superiore.gif"></td>
</tr>
<tr bgcolor="#003366">
<td><font color="#FFFFFF">Username</font></td>
<td><input type="text" size="10"></td>
</tr>
<tr bgcolor="#003366">
<td><font color="#FFFFFF">Password</font></td>
<td><input type="password" size="10"></td>
</tr>
<tr>
<td colspan="2" bgcolor="#003366" align="right">
<input type="submit" value="Login"></td>
</tr>
<tr>
<td colspan="2"><img src="bordo_inferiore.gif"></td>
</tr>
</table>
ed ecco il risultato:
Username |
|
Password |
|
Nota: questo è un esempio basilare di come utilizzare questo metodo di stilizzazione delle tabelle, non sono infatti stati utilizzati attributi particolari agli elementi interni alla tabella, come i campi di input, ne i Tag <form> e </form> che consiglio si inserire in questo modo:
<table width="150" cellpadding="0" cellspacing="0">
<form ...>
<tr>
...
...
</tr>
</form>
</table>
Buon divertimento :-)
Editare codice Html sulla pagina come testo
Un classico problema che affrontano coloro che desiderano editare codice sorgente su di una pagina al fine di pubblicarla come materiale didattico, è quello di evitare che il browser lo interpreti come codice e lo esegua, invece che stamparlo a video, pronto per essere semplicemente letto.
I Tag Html sono racchiusi tra i caratteri < e >, quindi il browser interpreterà come codice <img src="immagine.jpg"> e tenterà di inserire un'immagine.
Per stampare a video il codice e non eseguirlo, si utilizzano una serie di caratteri speciali formati da simboli, numeri e lettere, ad esempio, il carattere < si può stampare a video con la combinazione <, mentre l carattere > utilizza la combinazione >.
Dunque, per scrivere <html> dovremo scrivere <html>.
Per scrivere un lungo codice, che si tratti di Html o di un linguaggio di scripting, si utilizza del Tag <pre> e </pre>, ovvero "testo preformattato" che non necessita di giustificazioni particolari del testo per stamparlo a video in un certo modo.
Per fornire un esempio completo, espongo il codice di un semplice Javascript che invento al momento:
<pre>
<script language="javascript">
<!--
function Esempio() {
document.write("Codice di esempio");
alert("Codice di esempio");
}
-->
</script>
</pre>
Questo è il risultato:
<script language="javascript">
<!--
function Esempio() {
document.write("Codice di esempio");
alert("Codice di esempio");
}
-->
</script>
Ritorno a capo nei button di form HTML
Quando si inserisce un testo su di un button (o submit) di un form Html, spesso nasce l'esigenza di ottimizzare in termini di spazio e mandare a capo il suo testo.
Utilizziamo un semplice codice all'interno del value del button:
<input type="button" value="PRIMA RIGA SECONDA RIGA">
Ecco l'esempio:
Impostare i dati in un link di tipo mailto
Impostare i dati in un link di tipo mailto: è molto semplice ed utile, è necessario utilizzare i metodi di aggregazione dei dati che utilizzano per default i vari client di posta elettronica:
• mailto: utilizzato per default per definire il destinatario principale della mail
• Cc utilizzato per definire altri destinatari visibili a tutti gli altri
• Bcc utilizzato per definire altri destinatari invisibili a tutti gli altri
• Subject definisce l'oggetto della mail
• Body definisce il corpo della mail
• X-Priority definisce il grado di priorità della mail (bassa=Low, normale=Normal, alta=High)
Quest'ultimo parametro è valido solo per Microsoft Outlook Express: Altri client di posta elettronica, tra cui quelli di Netscape Navigator, utilizzano la dicitura Priority
La sintassi per l'utilizzo è semplice, basta accodare di seguito nel link di tipo mailto: i vari parametri; vediamo un esempio basilare:
<a href="mailto:pippo@server.it?
Subject=Oggetto&Body=Corpo della mail">
Scrivimi
</a>
Disabilitare una casella di testo
In Html è molto semplice disabilitare una casella di testo ed impedire che un utente vi scriva dentro. Ci sono due metodi, uno mediante l'utilizzo della patola chiave disabled ed uno mediante l'utilizzo della patola chiave readonly.
Vediamo un esempio:
<input type="text" name="campo1" value="scrivi qui..." disabled>
<input type="text" name="campo2" value="scrivi qui..." readonly>
Esiste tuttavia un altro metodo, ma non si tratta di puro Html, ma di un sistema che richiede l'ausilio di Javascript; il fine è quello di spostare altrove il cursore quando si tenta di posizionarlo nella casella di testo:
<input type="text" name="campo3" value="scrivi qui..."
onFocus="this.blur()">
Impedire ad un testo di andare a capo
Nell'editoria Web è molto importante presentare contenuti scritti in maniera chiara e precisa, in modo da permettere al lettore di leggere con semplicità e di far saltare all'occhio in maniera chiara una fase importante del brano testuale.
Nel Manuale di Html, precisamente nella lezione Formattazione del testo, abbiamo visto che è possibile unire due parole grazie allo spazio unificatore , che oltre ad unire due parole senza mandarle a capo, crea nella pagina uno spazio vuoto.
Ma se le parole da mandare a capo fossero comunque unite? Mi spiego: alcuni caratteri, come il trattino (-), per i browser Web rappresentano un carattere che, a fine del capoverso, o per dirla in gergo tecnico alla fine dell'area del browser, non creano unione fisica, pur creandola visivamente.
Può capitare di utilizzare, ad esempio, il termine by-passare (evitare, scavalcare, far fronte a) che il browser, nel caso di un ritorno a capo, restituirà in questo modo:
by-
passare
Per evitare che ciò accada è necessario utilizzare un Tag che non consenta il ritorno a capo: utilizzate quindi:
<nobr>by-passare</nobr>
e dormite sonni tranquilli :-)
Referenze dei Tag HTML
Tag |
Descrizione |
a |
Crea un collegamento ipertestuale (link); necessita dell'attributo href |
abbr |
Utilizzato per racchiudere delle abbreviazioni |
acronym |
Utilizzato per racchiudere degli acronimi |
address |
Scrive un testo impostandolo come un indirizzo di una persona, di un'azienda, ecc... |
applet |
Include un'applet Java all'interno di una pagina Html |
area |
Crea un'area linkabile su un'immagine |
b |
Imposta il testo compreso tra i Tag di apertura e chiusura in grassetto |
base |
Stabilisce alcune caratteristiche di base della pagina corrente |
basefont |
Stabilisce alcune stilizzazioni di base per la pagina corrente |
bdo |
Necessita dell'attributo dir e serve a cambiare direzione al testo compreso: da destra verso sinistra (ltr di default) e da sinistra verso destra (rtl) |
bgsound |
Permette di inserire una musica di sottofondo; si consiglia di utilizzarlo con parsimonia e alla fine della pagina |
big |
Aumenta la dimensione del testo rispetto a quella specificata esplicitamente o per default |
blink |
Crea l'effetto testo lampeggiante (valido solo per Netscape Navigator) |
blockquote |
Crea uno spazio di tabulatura sulla sinistra per gli elementi inclusi nei Tag di apertura e di chiusura |
body |
Specifica il corpo della pagina: tutto ciò che è compreso tra i tag di apertura e di chiusura saranno mostrati a video |
br |
Imposta un ritorno a capo senza lasciare un'interlinea vuota |
button |
Simile ad un input con type="button" crea un bottone per un modulo HTML |
caption |
Aggiunge un titolo ad una tabella, senza necessità di includerlo in una cella |
center |
Centra gli elementi compresi tra i Tag di apertura e di chiusura; in disuso, si preferisce usare align="center" su p o su div |
cite |
Evidenzia una citazione indentando il testo contenuto ed impostandolo in corsivo |
code |
Utilizzato per aggiungere ad una pagina un esempio di codice; simile al Tag pre, con la differenza che non indenta il testo riconoscendo tutti gli spazi vuoti |
col |
Con l'utilizzo di un colgroup aggiunge un gruppo ad una tabella |
colgroup |
Crea un gruppo per una tabella |
dd |
Tag testuale utilizzato per enfatizzare definizioni |
del |
Come strike sbarra un testo |
dfn |
Utilizzato per racchiudere delle definizioni: enfatizza il testo in corsivo, come i |
dir |
Permette di creare elenchi come il Tag ul |
div |
Tag di testo che comporta un ritorno a capo ma non un'interlinea vuoto alla chiusura |
dl |
Apre un blocco di definizioni |
doctype |
Riporta le specifiche e la versione Html utilizzata nella pagina corrente |
dt |
Specifica il testo a cui fa riferimento una definizione scritta in un dd |
em |
Enfatizza un testo stilizzandolo in corsivo; equivale ad i |
embed |
Permette di inserire un filmato o altri tipi di elementi multimediali, utilizzando il lettore predefinito del client connesso |
fieldset |
Crea un'area dedicabile ad un form e permette di inserire un titolo compreso nel box con l'utilizzo dei Tag legend |
font |
Permette la formattazione del testo: colore, dimensione e carattere da utilizzare |
form |
Apre un modulo Html; è necessario specificare il method da utilizzare e l'action a cui dirigere i dati |
frame |
Indica i riferimenti ad un file contenuti in un frameset; necessita dell'attributo src per specificare il file |
frameset |
Crea un set di frame |
h1 |
Titolo di primo livello |
h2 |
Titolo di secondo livello |
h3 |
Titolo di terzo livello |
h4 |
Titolo di quarto livello |
h5 |
Titolo di quinto livello |
h6 |
Titolo di sesto livello |
head |
Contiene gli elementi di back-office di intestazione della pagina, quali script, meta Tag, stilizzazioni, ecc... |
hr |
Crea una linea orizzontale di separazione |
html |
Apre e chiude il codice Html della pagina, ad eccezione della dichiarazione doctype |
i |
Imposta il testo compreso tra i Tag di apertura e chiusura in corsivo |
iframe |
Imserisce in una pagina un frame in linea |
img |
Imserisce un'immagine nella pagina; necessita dell'attributo src |
input |
Permette di creare una casella di testo, pulsanti di scelta o bottoni; è necessario specificare l'attributo type; va inserito in un form |
ins |
Sottolinea il testo compreso tra i Tag di apertura e di chiusura, come il Tag u |
isindex |
Sostituisce alcuni elementi dei form HTML |
kbd |
Enfatizza un testo che viene richiesto dal sistema all'utente |
label |
Permette ad un testo di far riferimento ad un elemento di un form grazie al suo attributo for legandolo all'id dell'elemento del modulo |
legend |
Inserito in un fieldset permette di specificarne il titolo in una legenda |
li |
Crea degli item per un elenco numerato (ol) o puntato (ul) |
link |
Permette di includere un file Css esterno |
map |
Inizializza una mappa d'immagine |
marquee |
Crea l'effetto testo scorrevole (valido solo per Ms Internet Explorer) |
menu |
Anche questo Tag può sostituire il classico ul per l'elenco puntato |
meta |
Specifica una serie di parametri per la pagina corrente, come il titolo della pagina, le parole chiave per i motori di ricerca, l'autore, ecc... |
nobr |
Impedisce ad una frase compresa tra i Tag di apertura e di chiusura di andare a capo |
noframes |
Presenta un messaggio a video sui browser che non supportano i frames |
noscript |
Presenta un messaggio a video sui browser che non supportano il linguaggio di scripting utilizzato |
object |
Specifica un elemento multimediale tipo filmati Flash |
ol |
Crea un elenco numerato; gli itam sono racchiusi nei Tag di apertura e di chiusura li |
optgroup |
Con l'attributo label crea un elenco definito in una select, dividendo i vari option per categoria |
option |
Specifica gli item di una casella di scorrimento select |
p |
Tag di testo che comporta un ritorno a capo ed un'interlinea vuoto alla chiusura |
param |
Specifica i parametri di un'applet Java |
pre |
Testo preformattato; non necessita di br per andare a capo e conta tutti gli spazi vuoti |
q |
Enfatizza ed indenta del testo |
s |
Abbraviazione di strike |
samp |
Enfatizza un testo di esempio |
script |
Accetta codice Javascript o VBScript tra i Tag di alertura e di chiusura; si consiglia di specificare il linguaggio nell'attributo language |
select |
Permette di creare una casella di scorrimento; è necessario utilizzare il Tag option per specificare gli item; va inserito in un form |
small |
Diminuisce la dimensione del testo rispetto a quella specificata esplicitamente o per default |
span |
Tag testuale che non comporta ritorno a capo |
strike |
Sbarra il testo compreso tra i Tag di apertura e di chiusura |
strong |
Equivale a b per impostare il grassetto |
style |
Specifica stilizzazioni Css tra i tag di apertura e di chiusura |
sub |
Imposta come "pedice" il testo compreso tra i Tag di apertura e di chiusura |
sup |
Imposta come "apice" il testo compreso tra i Tag di apertura e di chiusura |
table |
Apre una tabella per la formattazione di un layout o di una serie di dati |
tbody |
Contiene il corpo di una tabella |
td |
Rappresenta una cella di una tabella; da inserire nei tag table |
textarea |
Permette di creare un'area di testo; inserito in un form |
tfoot |
Specifica una frase per la fine di una tabella |
th |
Specifica l'intestazione per il titolo di una tabella |
thead |
Contiene un'intestazione per il titolo di una tabella |
title |
Specifica il titolo della pagina; va inserito tra i Tag di apertura e di chiusura head |
tr |
Contiene una serie di td disposte in orizzontale; da inserire nei tag table |
tt |
Testo a spaziatura fissa: riporta perfettamente in colonna tutte le lettere e/o simboli, anche di dimensioni differenti |
u |
Sottolinea il testo compreso tra i Tag di apertura e chiusura |
ul |
Crea un elenco puntato; gli itam sono racchiusi nei Tag di apertura e di chiusura li |
var |
In un blocco di codice di esempio stampato a video evidenzia parole chiave del codice stesso |
xml |
Permette di far riferimento ad un file Xml; necessita dell'attributo src per richiamare il file e di un id per un riferimento univoco |
Fonte: http://www.gcaruso.eu/Manuali%20e%20dispense/Informatica/manualehtml-1.doc
Data creazione: 14/02/2011 9.57 Creato da: Bologna Rocco
Data ultima modifica: 14/02/2011 9.57 Modificato da: Bologna Rocco
Guida rapida di HTML
per il corso di Fondamenti di informatica
Introduzione
In questo documento vogliamo raccogliere le informazioni relative ai comandi che abbiamo incontrato nel corso base di programmazione HTML.
L'idea è quella di creare un documento agile ed efficace, che possa aiutarci nella scrittura di documenti in HTML.
Non ci proponiamo di realizzare quindi un vero e proprio manuale utente, esaustivo e dettagliato, quanto piuttosto di avere a portata di mano quelle spiegazioni sintetiche dei singoli comandi che ci permetteranno di ricordarci rapidamente quanto abbiamo sperimentato durante il corso; si spera che, grazie a queste spiegazioni, capiamo come comportarci nella scrittura del nostro documento, restando inteso che, in difetto di funzionamento di questo sistema di illuminazione, informazioni più complete potranno essere recuperate sfruttando i testi o visitando i siti WEB indicati a lezione.
Non dimentichiamo, inoltre, che le lezioni si sono limitate alla presentazione dei principali comandi HTML standard con alcune delle loro opzioni. In questo documento, quindi, non troveranno molto spazio caratteristiche proprie di particolari implementazioni del linguaggio, né verranno documentate tutte le opzioni di tutti i comandi (anche se qualcosa in più di quanto visto a lezione ci sarà).
Impaginazione e simbologia
Nel documento, ciascun comando viene descritto da una linea di testo. Se il comando ammette attributi, essi sono spiegati nelle linee seguenti a quella della descrizione primaria del comando, generalmente dedicando una linea a ciascun attributo. Ciò non deve far dimenticare che in un singolo comando possono essere espressi più attributi allo stesso tempo.
I nomi dei comandi sono scritti in carattere maiuscole per agevolarne la lettura. Resta inteso che i visualizzatori sono in grado di interpretarne anche la versione minuscola.
Per descrivere i comandi vengono usate le seguenti convenzioni:
URL |
URL di un file esterno oppure nome di un file locale; in entrambi i casi URL rappresenta la destinazione del collegamento |
? |
una cifra (per esempio, <H?> sta per <H1>, <H2> e così via) |
?? |
due cifre, applicando due volte quanto appena detto |
?* |
numero di una o più cifre, iterando la convenzione detta sopra (per esempio: <HR WIDTH=“?*%”> significa che WIDTH può assumere valori (interi) percentuali di una o più cifre) |
.* |
testo arbitrario di uno o più caratteri alfanumerici (per esempio, ALT=".*" significa che il valore dell’attributo ALT sarà una stringa) |
.*[,.*] |
una o più porzioni di testo separate da virgole |
| |
separatore di valori alternativi per un attributo (per esempio, ALIGN=“LEFT|RIGHT|CENTER” significa che l’attributo ALIGN può assumere uno dei tre valori alternativi LEFT, RIGHT e CENTER) |
RGB |
tripletta di numeri esadecimali di due cifre (per esempio, BGCOLOR="#RGB" significa che BGCOLOR è composto da tre coppie di numeri esadecimali, ciascuna delle quali può assumere, indipendentemente dalle altre, i valori compresi fra 00 e FF) |
<tag></tag> |
comando parentetico: ha effetto sulla porzione di documento compresa fra la marca di inizio, cioè <tag>, e quella di fine comando, cioè </tag> (per esempio: <em>testo da evidenziare</em> istruisce il visualizzatore a evidenziare il testo compreso fra le due marche) |
Elementi di sintassi HTML
Comandi di formattazione del documento
Identificatore di tipo |
<HTML></HTML> |
all’inizio e alla fine del file |
Testa |
<HEAD></HEAD> |
informazioni descrittive, per esempio il titolo o i metacomandi |
Corpo |
<BODY></BODY> |
contenuto vero e proprio del documento |
La struttura di una pagina HTML dovrebbe sempre essere come segue:
<HTML>
<HEAD>
informazioni descrittive
</HEAD>
<BODY>
il contenuto vero e proprio della pagina
</BODY>
</HTML>
Nella sezione HEAD possono trovare spazio i seguenti comandi:
Titolo |
<TITLE></TITLE> |
nome del documento; il visualizzatore lo scrive generalmente nella barra del titolo della finestra |
Meta-informazioni |
<META> |
informazioni descrittive, usate spesso da programmi di catalogazione automatica di pagine web |
Contenuto della pagina |
<META NAME=“description” content=“.*”> |
riassunto del documento |
Parole chiave della pagina |
<META NAME=“keywords” content=“.*[,.*]”> |
parole chiave separate da virgole, sono usate principalmente dai classificatori dei motori di ricerca per classificare il documento |
Autore |
<META NAME="author" content=".*"> |
il nome dell'autore del codice |
Generatore |
<META NAME="generator" CONTENT=".*"> |
il programma di impaginazione che ha generato il codice HTML |
Auto-aggiornamento del documento |
<META HTTP-EQUIV=“refresh” CONTENT=“?*”> |
il documento viene aggiornato ogni ?* secondi |
Aggiornamento remoto del documento |
<META HTTP-EQUIV=“refresh” CONTENT=“?*; URL=URL”> |
dopo ?* secondi il documento originario viene sostituito con quello di URL; notare che nel comando la prima stringa URL è la parola chiave composta dai caratteri U, R e L, mentre la seconda è una variabile che rappresenta qualunque valore impiegabile come collegamento valido |
Il comando BODY permette di definire varie caratteristiche dell’intero foglio tramite l’assegnamento di valori ai suoi atttributi. Queste caratteristiche sono illustrate nel seguito. È importante notare due cose:
- a differenza delle informazioni che possono trovare posto nella sezione HEAD, fra il tag d’inizio e quello di fine testata, quelli che seguono sono attributi del tag BODY e quindi devono trovarsi nella linea di definizione del comando;
- il comando BODY va scritto una sola volta, con tutte le sue opzioni l’una di seguito all’altra: è solo per chiarezza espositiva che qui sono riportate su righe diverse.
Colore di sfondo |
<BODY BGCOLOR="#RGB"> |
|
Immagine di sfondo |
<BODY BACKGROUND="URL"> |
|
Colore del testo |
<BODY TEXT="#RGB"> |
|
Colore dei collegamenti non ancora visitati |
<BODY LINK="#RGB"> |
di solito è blu: #0000FF |
Colore dei collegamenti visitati |
<BODY VLINK="#RGB"> |
dove V sta per visited; di solito è porpora: #800080 |
Colore del collegamento selezionato |
<BODY ALINK="#RGB"> |
dove A sta per active; di solito è rosso: #FF0000 |
Comandi per la formattazione della pagina
Titoli di sezioni |
<H?></H?> |
sono previsti 6 livelli di titolazione; i visualizzatori evidenziano il testo dei titoli rispetto a quello del resto del documento, con enfasi decrescente al crescere del livello di titolazione |
Allineamento dei titoli |
<H? ALIGN=“LEFT|CENTER| RIGHT”></H?> |
|
Testo preformattato |
<PRE></PRE> |
visualizzato come testo ASCII formattato con carattere a passo fisso |
Blocco di citazioni |
<BLOCKQUOTE> |
di solito rientrato |
Blocco di codice |
<CODE></CODE> |
per listati di programmi |
Indirizzo dell'autore del documento |
<ADDRESS></ADDRESS> |
spesso in corsivo |
Comandi per la formattazione del testo
Enfatizzato |
<EM></EM> |
di solito in corsivo |
Molto enfatizzato |
<STRONG></STRONG> |
di solito in neretto |
Corsivo |
<I></I> |
dove I sta per italics |
Neretto |
<B></B> |
dove B sta per bold |
Citazione |
<CITE></CITE> |
di solito in corsivo |
Sottolineato |
<U></U> |
|
Lampeggiante |
<BLINK></BLINK> |
chi lo conosce, lo evita |
Apice |
<SUP></SUP> |
|
Pedice |
<SUB></SUB> |
|
Centrato |
<CENTER></CENTER> |
applicabile anche alle immagini |
Corpo (dimensione) del carattere |
<FONT SIZE=“?”></FONT> |
può variare fra 1 e 7 |
Impostazione della dimensione di base |
<BASEFONT SIZE=“?”> |
in difetto di opzioni è 3 |
Variazione del corpo |
<FONT SIZE="+|-?"></FONT> |
incrementa o diminuisce il valore attuale |
Incremento unitario del corpo |
<BIG></BIG> |
equivalente a SIZE=“+1” |
Riduzione unitaria del corpo |
<SMALL></SMALL> |
equivalente a SIZE=“-1” |
Colore del testo |
<FONT COLOR="#RGB"> </FONT> |
alcuni colori possono essere indicati con il loro nome inglese: red, green, blue, black, eccetera |
Testo su più colonne |
<MULTICOL COLS=“?”> </MULTICOL> |
|
Spaziatura |
<SPACER> |
|
Tipo di spaziatura |
<SPACER TYPE=“horizontal| vertical|block”> |
|
Ampiezza della spaziatura |
<SPACER SIZE=“?”> |
|
Interruzioni del testo
A capo |
<BR> |
dove BR sta per branch |
Paragrafo |
<P></P> |
il tag finale può essere omesso |
Paragrafo allineato |
<P ALIGN=“LEFT|CENTER| RIGHT”></P> |
|
A capo con ripristino dei margini |
<BR CLEAR=“LEFT|RIGHT| ALL”> |
clear=“all” è la bacchetta magica di HTML |
Riga orizzontale |
<HR> |
dove HR sta per horizontal ruler |
Riga orizzontale allineata |
<HR ALIGN=“LEFT|RIGHT| CENTER”> |
|
Larghezza della riga |
<HR WIDTH=“?*|?*%”> |
espressa in pixel o in percentuale rispetto alla larghezza della pagina |
Spessore della riga |
<HR SIZE=“?*”> |
espresso in pixel |
Riga colorata |
<HR COLOR=“#RGB”> |
|
Riga piatta |
<HR NOSHADE> |
senza l'effetto tridimensionale |
Caratteri speciali
I caratteri appartenenti all’insieme di caratteri noto come US-ASCII o ISO-8859-1, che codifica il font detto Latin Alphabet No 1 (abbreviato di solito in Latin-1), possono essere rappresentati in un documento sorgente HTML da sequenze di caratteri del tipo &#?*; dove ?* sta per il numero da 09 a 255 che il carattere occupa nell’ordine di definizione di Latin-1 (i caratteri da 00 a 08 non sono usati; non tutti i visualizzatori sono in grado di rappresentare tutti i caratteri). Per esempio, la frazione un quarto (¼) è rappresentabile con ¼ il simbolo tilde (~) con ~ e così via.
Per alcuni caratteri esiste anche la possibilità di usare un nome al posto del numero. Per esempio, la a minuscola con accento grave (à, non presente sulle tastiere americane) si rappresenta sia con à che con à.
In Appendice è riportata una tabella dei caratteri speciali Latin 1 con la relativa codifica.
Collegamenti ipertestuali
Marcatura di un punto di un documento |
<A NAME=".*"></A> |
|
Collegamento a un punto dello stesso documento |
<A HREF="#.*"></A> |
|
Collegamento generico |
<A HREF="URL"></A> |
può essere anche un’immagine, un filmato, eccetera |
Collegamento a un punto dell’URL |
<A HREF="URL#.*"></A> |
dove “.*” è un nome definito in URL con <NAME> |
Collegamento da visualizzare in una finestra specifica |
<A HREF="URL" TARGET=".*"></A> |
dove in TARGET si riferisce una finestra definita secondo la sintassi dei frames; la pagina definita da URL verrà visualizzata nella finestra scritta in TARGET |
Trattamento delle immagini
Immagine incorporata |
<IMG SRC="URL"> |
|
Didascalia |
<IMG SRC="URL" ALT=".*"> |
scritta su video quando non viene visualizzata l'immagine; alcuni visualizzatori mostrano la didascalia quando il cursore passa sull’immagine |
Dimensioni dell’imagine |
<IMG SRC="URL" HEIGHT=“?*” WIDTH=“?*”> |
in pixel; rendono più rapida la visualizzazione; se diversi dalle dimensioni reali dell’immagine, il visualizzatore allarga o stringe l’immagine per adattarla ai valori specificati |
Spessore del bordo |
<IMG SRC="URL" BORDER=“?*”> |
espresso in pixel |
Allineamento dell’immagine |
<IMG SRC="URL" ALIGN=“LEFT|RIGHT|TOP| MIDDLE|BOTTOM”> |
|
Mappe sensibili
Mappa sensibile remota |
<IMG SRC="URL" ISMAP> |
tipo server-side |
Mappa sensibile locale |
<IMG SRC="URL" USEMAP="URL"> |
tipo client-side; l’URL identifica la definizione di mappa |
Mappa locale |
<MAP NAME=".*"></MAP> |
|
Aree sensibili della mappa |
<AREA SHAPE="RECT|POLY| CIRCLE" COORDS=".*[,.*]" HREF="URL"> |
|
Liste
Esistono vari tipi di liste; ciascuno di essi rispetta la struttura che segue:
<Tag_che_identifica_il_tipo_di_lista>
<LI>il testo del primo elemento della lista
<LI>il testo del secondo elemento della lista
...
<LI>il testo dell’ultimo elemento della lista
</Tag_che_identifica_il_tipo_di_lista>
Le liste di definizioni usano, al posto del tag LI, una coppia di descrittori:
<DT>la voce da definire <DL>la definizione
Nel seguito sono elencati i vari tipi di lista, ognuno con il proprio Tag_che_identifica_il_tipo_di_lista e le eventuali opzioni:
Lista ordinata |
<OL></OL> |
|
Lista ordinata compatta |
<OL COMPACT></OL> |
|
Tipo di numerazione |
<OL TYPE=“1|I|i|A|a”> |
lista ordinata con numeri arabi, romani maiuscoli, minuscoli, lettere maiuscole, minuscole, l’ordine è ascendente |
Alterazione del tipo di numerazione |
<LI TYPE=“1|I|i|A|a”> |
vale per la voce corrente e le seguenti |
Numero di partenza |
<OL START=“?*”> |
il valore deve essere espresso in numeri arabi, qualunque sia il tipo di numerazione scelto |
Alterazione della numerazione |
<LI VALUE=“?*”> |
vale per la voce corrente e le seguenti |
Lista non ordinata |
<UL></UL> |
ogni voce è preceduta da un carattere grafico segnaposto |
Lista non ordinata compatta |
<UL COMPACT></UL> |
|
Tipo di segnaposto |
<UL TYPE=“DISC|CIRCLE| |
|
Cambio di segnaposto |
<LI TYPE=“DISC|CIRCLE| SQUARE”> |
vale per la voce corrente e le seguenti |
Lista di definizioni |
<DL></DL> |
|
Lista di definizioni compatta |
<DL COMPACT></DL> |
|
Menu |
<MENU></MENU> |
|
Menu compatto |
<MENU COMPACT></MENU> |
|
Direttorio |
<DIR></DIR> |
|
Direttorio compatto |
<DIR COMPACT></DIR> |
|
Tabelle
Delimitatore di tabella |
<TABLE></TABLE> |
|
Delimitatore di riga |
<TR></TR> |
|
Cella di dati all’interno di una riga |
<TD></TD> |
|
Cella di intestazione |
<TH></TH> |
di norma centrata e in grassetto |
Bordo |
<TABLE BORDER=“?*”> |
espresso in unità che sono implementate a discrezione del visualizzatore |
Colore di sfondo |
<TABLE BGCOLOR=“#RGB”> |
|
Immagine di sfondo |
<TABLE BACKGROUND=“URL”> |
l’immagine viene visualizzata dietro tutte le celle |
Spazio tra celle |
<TABLE CELLSPACING=“?*”> |
in difetto di opzioni è 2 |
Spazio interno |
<TABLE CELLPADDING=“?*”> |
lo spazio fra il bordo di una cella e il suo dato; in difetto di opzioni è 1 |
Larghezza della tabella |
<TABLE WIDTH=“?*|?*%”> |
espressa in pixel o in percentuale rispetto alla larghezza della pagina |
Allineamento del testo della tabella:
Allineamento orizzontale nella riga |
<TR ALIGN=“LEFT|CENTER|RIGHT”> |
Allineamento verticale nella riga |
<TR ALIGN=“TOP|MIDDLE|BOTTOM| BASELINE”> |
Allineamento orizzontale nella cella |
<TD ALIGN=“LEFT|CENTER|RIGHT”> |
Allineamento verticale nella cella |
<TD ALIGN=“TOP|MIDDLE|BOTTOM| BASELINE”> |
Allineamento orizzontale nella intestazione |
<TH ALIGN=“LEFT|CENTER|RIGHT”> |
Allineamento verticale nella intestazione |
<TH ALIGN=“TOP|MIDDLE|BOTTOM| BASELINE”> |
Estensione di una cella:
Estensione in colonne |
<TD COLSPAN=“?*”> |
|
Estensione in righe |
<TD ROWSPAN=“?*”> |
|
Larghezza della cella |
<TD WIDTH="?*|?*%"> |
espressa in pixel o in percentuale rispetto alla larghezza della tabella |
Colore di sfondo della cella |
<TD BGCOLOR="#RGB"> |
|
Estensione di una cella di intestazione:
Estensione in colonne |
<TH COLSPAN=“?*”> |
|
Estensione in righe |
<TH ROWSPAN=“?*”> |
|
Larghezza della intestazione |
<TH WIDTH="?*|?*%"> |
espressa in pixel o in percentuale rispetto alla larghezza della tabella |
Colore di sfondo della intestazione |
<TH BGCOLOR="#RGB"> |
|
Didascalia |
<CAPTION></CAPTION> |
|
Riquadri (frames)
Pagina composta a riquadri |
<FRAMESET></FRAMESET> |
sostituisce <BODY> |
Altezza delle righe |
<FRAMESET ROWS= “.*,.*[.*|.*]”></FRAMESET> |
espressa in pixel o in percentuale |
Larghezza delle colonne |
<FRAMESET COLS= “.*,.*[.*|.*]”></FRAMESET> |
espressa in pixel o in percentuale |
Dichiarazione di frame |
<FRAME> |
definizione di ogni riquadro |
Documento incorporato nel riquadro |
<FRAME SRC="URL"> |
|
Denominazione del riquadro |
<FRAME NAME=".*"> |
nomi predefiniti: _blank, _self, _parent, _top |
Rientro orizzontale |
<FRAME MARGINWIDTH=“?*”> |
distanza in pixel del contenuto dai margini destro e sinistro |
Rientro verticale |
<FRAME MARGINHEIGHT=?> |
distanza in pixel del contenuto dai margini alto e basso |
Barra di scorrimento |
<FRAME SCROLLING="YES| NO|AUTO"> |
|
Ridimensionamento impedito |
<FRAME NORESIZE> |
|
Cornice del riquadro |
<FRAME FRAMEBORDER="yes|no"> |
|
Spazio intorno al riquadro |
<FRAME FRAMESPACING="?*"> |
espresso in pixel; effetto riquadro flottante |
Contenuto in mancanza di riquadri |
<NOFRAMES></NOFRAMES> |
per i visualizzatori che non supportano i riquadri |
Moduli
Definizione |
<FORM ACTION="URL" METHOD=GET|POST> </FORM> |
|
Campo di immissione |
<INPUT TYPE="TEXT|PASSWORD| IMAGE|CHECKBOX|RADIO| HIDDEN|RESET|SUBMIT"> |
|
Nome del campo |
<INPUT NAME=".*"> |
|
Valore del campo |
<INPUT VALUE=".*"> |
|
Inizializzazione di una scelta |
<INPUT CHECKED> |
per checkbox e radio |
Dimensione del campo |
<INPUT SIZE=“?*”> |
espressa in caratteri |
Lunghezza massima |
<INPUT MAXLENGTH=“?*”> |
espressa in caratteri |
Lista di opzioni |
<SELECT></SELECT> |
ciascuna opzione è identificata da un tag OPTION |
Numero di opzioni |
<SELECT SIZE=“?*”> </SELECT> |
|
Nome del campo |
<SELECT NAME=".*"> </SELECT> |
|
Scelta multipla |
<SELECT MULTIPLE> |
permette di selezionare più opzioni |
Opzioni |
<OPTION> |
|
Opzione standard |
<OPTION SELECTED> |
|
Finestra di immissione |
<TEXTAREA></TEXTAREA> |
|
Dimensioni del campo di immissione |
<TEXTAREA ROWS=“?*” COLS=“?*”></TEXTAREA> |
|
Nome del campo |
<TEXTAREA NAME=".*"> </TEXTAREA> |
|
Miscellanea
Prologo |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
|
URL di riferimento del documento |
<BASE HREF="URL"> |
nella testa della pagina |
Nome della finestra standard |
<BASE TARGET=".*"> |
nella testa della pagina |
Commento |
<!--.*--> |
|
Appendice: i caratteri speciali
Simbolo |
Entità HTML |
Codice ISO Latin-1 |
¡ |
¡ |
¡ |
¿ |
¿ |
¿ |
" |
" |
" |
« |
« |
« |
(C’è, ma non si vede) |
|
  |
& |
& |
& |
¢ |
¢ |
¢ |
© |
© |
© |
÷ |
÷ |
÷ |
> |
> |
> |
< |
< |
< |
µ |
|
µ |
· |
· |
· |
¶ |
¶ |
¶ |
± |
± |
± |
£ |
£ |
£ |
® |
® |
® |
§ |
§ |
§ |
¥ |
¥ |
¥ |
á |
á |
á |
à |
à |
à |
â |
&acric; |
â |
å |
å |
å |
ã |
ã |
ã |
ä |
ä |
ä |
æ |
æ |
æ |
ç |
ç |
ç |
é |
é |
é |
è |
è |
è |
ê |
ê |
ê |
ë |
ë |
ë |
í |
í |
í |
ì |
ì |
ì |
î |
î |
î |
ï |
ï |
ï |
ñ |
ñ |
ñ |
ó |
ó |
ó |
ò |
ò |
ò |
ô |
ô |
ô |
ø |
ø |
ø |
õ |
õ |
õ |
ö |
ö |
ö |
ß |
ß |
ß |
ú |
ú |
ú |
ù |
ù |
ù |
û |
û |
û |
ü |
ü |
ü |
ÿ |
ÿ |
ÿ |
´ |
|
´ |
Fonte: http://dinamico2.unibg.it/lazzari/manuhtml.doc
UNIVERSITÀ DEGLI STUDI DI BERGAMO
Facoltà di Lingue e Letterature Straniere
Autore: Marco Lazzari
Guida html
HTML
Guida di base
Pag |
Argomento |
Specifiche |
1 |
L'HTML e i browser |
|
3 |
Cosa è un editor ? e cosa è il codice html ? |
|
4 |
Struttura base di un documento HTML |
|
5 |
Testata |
Title - Meta |
6 |
Il Corpo |
Body |
7 |
Il testo |
Headings – Font – caratteri speciali – stili testo - |
10 |
Liste |
Ordinate – Non ordinate |
13 |
Link |
|
14 |
Immagini |
IMG e attributi |
15 |
Tabelle |
|
17 |
Frames |
Frameset e frame |
20 |
Form |
|
ITSOS “A. Steiner” - Milano
Comunicazioni Multimediali
A cura dei docenti di STC
L'HTML e i browser
L'HTML è il linguaggio con cui potete indicare come i vari elementi vanno disposti in una pagina Web. Un documento html, infatti, non è nient'altro che un file di testo con delle indicazioni sul colore delle scritte, sulla posizione delle immagini all'interno della pagina, su come far scorrere il testo, e altre cose di questo genere.
Il Browser è il programma che usate quando navigate nel Web e svolge principalmente due compiti:
- scarica i vari files che si trovano su un computer remoto (il server) e che fanno riferimento a un certo indirizzo
- legge i documenti scritti in html, e a seconda delle indicazioni ivi contenute, visualizza la pagina in un modo, piuttosto che in un altro; inoltre i vari files associati a quel documento (ad esempio le immagini, o i filmati in flash) vengono disposti secondo le indicazioni del codice html
Oltre ad Internet Explorer, il browser più diffuso, esistono altri browser: prima di tutto lo "storico" Netscape Navigator, con cui la Microsoft ha ingaggiato una vera e propria guerra (vincendola). Poi il browser open source Mozilla, che nasce da Netscape e ha la particolarità di essere a codice aperto, cioè con la possibilità per gli sviluppatori di vedere com'è fatto il programma. Una parte di utenti (si tratta sempre di una minoranza comunque rispetto allo strapotere di Internet Explorer) utilizza poi Opera, un browser norvegese celebre per la sua velocità di visualizzazione delle pagine. Ovviamente esistono anche molti altri browser. Per ciascuno di essi esistono poi differenti versioni a seconda del sistema operativo (Windows, Mac OS, Linux, o altri).
È importante sin dall'inizio acquisire una mentalità multi-browser, perché il mestiere del webmaster non consiste tanto nel conoscere nei minimi dettagli il codice HTML, quanto piuttosto nel sapere come il codice HTML verrà visualizzato sul computer dell'utente: infatti uno dei lavori più difficili è quello di riuscire a far vedere correttamente il proprio sito con i browser e le piattaforme più svariate.
I files scaricati dal web vengono memorizzati in una particolare cartella del computer che prende il nome di cache.
In Internet Explorer è possibile visualizzarla utilizzando i comandi:
Strumenti > Opzioni Internet > Generale > Impostazioni > Visualizza file
In questo modo verrà mostrato il percorso della cartella in cui i documenti vengono temporaneamente memorizzati.
La visualizzazione di un file html da parte del browser prende il nome di rendering della pagina. Motore di rendering è dunque quella sezione del browser che si occupa di mostrare sul video la pagina.
Il compito del linguaggio HTML è dunque quello di spiegare al browser come i vari files relativi al documento in esame devono essere disposti all'interno della pagina che stiamo visualizzando.
In qualsiasi momento è possibile visualizzare il codice HTML delle pagine che stiamo visitando. Con Internet Explorer:
Visualizza > HTML
HTML ( Hyper Text Markup Language) è formato da definizioni, elementi (tags), questi impartiscono al browser delle direttive ben precise al fine di ottenere il risultato a video, una sorta di interpretazione che varia a volte a seconda del tipo di browser adoperato. Si tratta dunque di conoscere il significato dei vari elementi e come questi possono essere combinati per avere la padronanza del linguaggio.
Per la stesura di questo linguaggio si fa uso di un normale editor di testi quale potrebbe essere il semplicissimo Blocco Note di Windows, o di editor specifici per HTML o, ancora, di editor visuali.
Cosa è un editor ? e cosa è il codice html ?
Un editor, altro non è che uno strumento che ci consente di scrivere in modo semplice e veloce righe di codice html; il codice che i browser di navigazione, qualunque essi siano, riconoscono ed interpretano. Si potrebbe paragonarlo ad un programma per videoscrittura, anzi sono moltissime le similitudini, con la sola differenza che il testo scritto da questi editors è formattato nel modo giusto per dare vita a pagine di ipertesto; da qui il nome HTML: Hyper Text Markup Language.
Gli editors si dividono sostanzialmente in due categorie:
Testuali, bisogna scrivere il codice, quindi conoscerlo, offrono gli strumenti giusti con suggerimenti necessari alle varie esigenze, si ha il pieno controllo della situazione superando quelli che spesso sono i limiti degli editors visuali.
Visuali, molto semplici, simili ai programmi di grafica permettono di disegnare o semplicemente trascinare quello che serve all'interno dell'ambiente di sviluppo, operazione che genera automaticamente codice html.
Dopo questa considerazione chi avesse deciso di affidarsi agli editors visuali può tranquillamente smettere di leggere il seguito di queste pagine, non gli serviranno a molto, parleremo di codice che l'editor visuale gestisce in assoluta autonomia. Un saluto a queste persone che probabilmente torneranno non appena insorgeranno le prime difficoltà, dovute alla mancata realizzazione di determinate cose possibili solo se a conoscenza del codice giusto.
Un'ultima raccomandazione prima di passare in rassegna i vari elementi (tags); sarà bene ricordare sempre, che qualsiasi pagina creata per la rete, prima di essere visualizzata dovrà essere scaricata nella memoria (cache) del browser; quindi pagine lunghe o farcite di molte immagini e suoni, sono spesso motivo di abbandono della visita di un visitatore a causa dell’eccessiva attesa. Evitatele nel modo più assoluto, meglio pianificare diverse pagine al posto di una singola. Suddividere il lavoro in più pagine non costa nulla ed offre maggiore flessibilità anche a voi stessi per eventuali modifiche.
Html non è un vero e proprio linguaggio di programmazione, o almeno non come si è abituati a credere quando si parla di programmazione. HTML è molto più semplicemente un insieme di istruzioni: <TAGS> ,che il browser legge in maniera sequenziale, dall'alto verso il basso, da sinistra verso destra; esattamente come avviene la normale lettura di un testo per noi umani.
Queste istruzioni, o meglio questi elementi (tags), sono racchiusi fra parentesi angolari: <queste> ogni elemento (tag) ha un compito preciso e termina con lo stesso elemento preceduto da una barra retroversa, per rifarsi all'esempio appena citato: </queste>.
Struttura base di un documento HTML
Si potrebbe decidere quali elementi (tags) adoperare a seconda di quello che abbiamo intenzione di fare. Il linguaggio HTML non ha variabili da dichiarare o cose di questo genere, ma ha comunque delle regole da rispettare, la più importate di queste regole è la struttura entro la quale lavorano tutti i singoli elementi, questa dovrà essere sempre presente su ogni pagina che andremo a creare, vediamo come è composta questa struttura:
<html> <head> <title>la mia prima pagina web</title> </head> <body> Ecco la mia prima pagina in html destinata al web. </body> </html> |
Di tutto il codice scritto sopra, noi vedremo soltanto ciò che è stato scritto nel corpo (body) del listato; quindi fra gli elementi <body> e </body>:
Ecco la mia prima pagina in html destinata al web. |
Ogni pagina html grande o piccola che sia dovrà obbligatoriamente avere sempre i due tags di definizione <html></html>, i due tags per la testata <head></head>, il tag per il titolo <title></title> e i due tags per il corpo <body></body>.
Vediamo in dettaglio tutte queste cose:
- <html>
Inizio codice html: tutto ciò che sarà posto all'interno di questo documento e fino al relativo tag di chiusura sarà inteso come struttura del codice html
- <head>
Testata o head del documento, in questa sezione trovano posto tutti quei tags che impartiscono direttive al browser quali: titolo, comandi Meta, richiami ai fogli di stile, scripts. Tutto ciò che si trova all'interno della struttura head non sarà visualizzato ma interpretato dal browser, una zona quindi destinata ad uso esclusivo dei soli comandi che impartiscono direttive ben specifiche.
- </head>
- <body>
Corpo o body del documento, è in questa sezione che lavoreremo maggiormente ed è proprio qui che andranno messe immagini, suoni , filmati, testo, form, tabelle, links e quant'altro faccia parte di html.
- </body>
- </html>
La chiusura dei vari elementi (tags) e un elemento da non dimenticare mai, solo cosi' potremo avere la certezza di una giusta e corretta interpretazione da parte del browser.
I tags possono essere scritti indifferentemente sia in minuscolo che in maiuscolo, gli spazi lasciati fra un tag e l'altro e fra una parola e l'altra saranno ignorati.
La Testata
La testata (HEAD) di un HTML definisce le caratteristiche principali dell' intero documento, che non verranno direttamente visualizzate dal browser. La mancata definizione di tali caratteristiche non pregiudica la leggibilità del BODY (e quindi fra <head> e </head> potrebbe anche non esserci alcunché), ma, almeno nel caso del tag <TITLE>, sminuisce il contenuto informativo del documento, ed è quindi opportuno non trascurarle.
Ecco i principali tag possibili all'interno di una testata:
1. TITLE : è il titolo del documento, normalmente una mezza dozzina di parole, che serve per la sua identificazione (ad es. da parte di un "motore di ricerca"), e compare nella title bar della finestra del browser.
Sintassi :
<TITLE>....</TITLE>
2. META: invia al server meta-informazioni relative al documento, che non siano trattabili con altri tag della testata. Il server può così identificare e catalogare tali meta-informazioni, ed eventualmente generare risposte al browser a seconda del valore assegnato agli attributi.
Tali attributi sono:
• CONTENT="valore": definisce il contenuto della meta-informazione. E' obbligatorio.
• NAME="valore": definisce il nome della meta-informazione. Si usa quando si vuole semplicemente inviare la meta-informazione, senza richiedere risposta.
• HTTP-EQUIV="valore".
Se valore="Refresh", e se dopo un certo tempo (specificabile), l'utente non si è connesso ad altri documenti, il browser ricarica automaticamente il file, oppure carica un nuovo file HTML, di cui deve essere specificato l'URL.
Ad esempio:
<META HTTP-EQUIV="Refresh" CONTENT="n">
<META HTTP-EQUIV="Refresh" CONTENT="n; risorsa://indirizzoIP/percorso/docum.html">
nel primo caso, dopo n secondi viene ricaricato il file di partenza;
nel secondo caso, n sec dopo il caricamento del file in cui si trova il tag META, viene caricato il file doc.html, che si trova all'URL precisato; ( tale file a sua volta potrebbe contenere un altro tag META, che potrebbe far caricare un altro HTML, ecc.)
Se valore="Description" o se valore="Keywords", è possibile nel valore di CONTENT specificare una descrizione del sito o le parole chiave che lo identificano, che verranno utilizzate dai motori di ricerca presenti in INTERNET.
Ad esempio:
<META HTTP-EQUIV="Keywords" CONTENT="italia,scuola,sperimentazione,milano,multimedia">
Il Corpo
Il corpo (BODY) di un HTML comprende tutto quanto verrà visualizzato all'interno della finestra del browser.
Attributi di BODY
Il tag BODY (come molti altri tag html) ammette diversi attributi, ai quali si possono assegnare dei valori per definire il colore del testo, quello dei link e dello sfondo.
Inoltre, è possibile assegnare come background un'immagine che, replicata automaticamente più volte dal browser, riempirà completamente la pagina video, facendo da sfondo ai testi e alle immagini che compaiono successivamente.
Gli attributi non sono obbligatori, possono essere presenti solo in parte, e non hanno, fra loro, un ordine vincolante. Tuttavia, se sono presenti, devono essere collocati all'inizio del corpo del documento, prima dei tag relativi ai testi, ai link, e alle immagini.
Sintassi :
<BODY BGCOLOR="#rrggbb" TEXT="#rrggbb" LINK="#rrggbb" VLINK="#rrggbb" ALINK="#rrggbb" BACKGROUND="percorso/immagine">
• BGCOLOR : stabilisce il colore dello sfondo (se assente il background)
• TEXT : stabilisce il colore del testo
• LINK : stabilisce il colore di un link non ancora visitato
• ALINK : stabilisce il colore di un link nell'istante in cui viene attivato
• VLINK : stabilisce il colore di un link già visitato
• BACKGROUND : stabilisce l'immagine di sfondo
nota: il valore "#rrggbb" si riferisce a una tripletta di numeri esadecimali che definiscono le componenti di rosso, verde e blu del colore prescelto; ad esempio:
"#FF0000"=rosso; "#00FF00"=verde; "#0000FF"=blu; "#FFFFFF"=bianco;"#000000"=nero; "#FFFF00"=giallo; "#FF00FF"=magenta; "#00FFFF"=cyan;"#545454"=grigio"#4F2F4F"=viola; "#CD7F32"=oro; "#E6E8FA"=argento;
Un esempio di attributi di body:
<BODY BGCOLOR="#000000" TEXT="#F0F0F0" LINK="#FFFF00" VLINK="#22AA22" ALINK="#0077FF" BACKGROUND="paesaggio.gif">
...
</BODY>
con questi attributi avremo un testo grigio chiaro su sfondo nero; i link saranno inizialmente gialli, blu-verde mentre vengono attivati, e grigio scuro dopo essere stati attivati.
Il Testo
Come detto, i testi (come anche le immagini, i link, ecc.) che il browser dovrà visualizzare si devono immettere all'interno del BODY (e dopo gli attributi di BODY)
Nella presentazione dei testi tramite l'HTML si deve tener conto che:
• nella lettura del file sorgente, i browser non tengono conto di più spazi bianchi di seguito, dei tabs o delle interruzioni di linea; ad es., un testo che nell’editor viene scritto nel modo:
oggi è una
bella giornata
nel browser apparirà come:
"oggi è una bella giornata"
senza gli spazi bianchi in eccesso, le interruzioni di linea, e la riga vuota in mezzo.
• il browser manda a capo automaticamente il testo in relazione della larghezza della finestra: quindi, a seconda di come l'utente dimensiona la finestra, la pagina verrà visualizzata in modo un po' diverso
Per superare in parte queste limitazioni e formattare il testo in un modo più vario sono previsti dei particolari tag, che ora esamineremo .
1. Headings
Consentono di presentare porzioni del testo di importanza diversa (titoli, sottotitoli, brani, ecc.) differenziandole con caratteri di dimensioni diverse. Esistono sei livelli di headings, numerati da 1 (il maggiore) a 6 (il minore).
Sintassi :
<Hn>Heading</Hn>
dove n è un numero compreso fra 1 e 6.
nota: si tenga presente che introducendo un heading diverso dal precedente si genera automaticamente un ritorno a capo.
Ad esempio:
<H1>TITOLO</H1><H3>Questo è un sottotitolo</H3>
verrà visualizzato in questo modo:
TITOLO
Questo è un sottotitolo
2. Font
Volendo modificare le dimensioni, il colore e il tipo di carattere da utilizzare, è possibile utilizzare il tag <FONT> con i suoi diversi attributi:
- l'attributo SIZE permette di stabilire la dimensione del carattere
Sintassi :
<FONT SIZE=n>testo</FONT>
dove il valore n può variare da 7 (il maggiore) a 1 (il minore).
Ad esempio:
<FONT SIZE=7>Questo </FONT><FONT SIZE=6>testo </FONT>
<FONT SIZE=5>cambia </FONT><FONT SIZE=4>dime</FONT>
<FONT SIZE=3>nsi</FONT><FONT SIZE=2>one</FONT>
apparirà nel seguente modo:
Questo testo cambia dimensione
nota: Il SIZE di default ha valore 3. E' possibile modificarlo con il tag:
<BASEFONT SIZE= n> con n sempre compreso fra 7 e 1.
E' possibile anche un'altra sintassi per l'attributo SIZE, utilizzando il segno "+" o il segno "-". Ad es.:
<FONT SIZE=+2>testo</FONT>
visualizzerà il testo con una dimensione dei caratteri di due gradi maggiore rispetto alla precedente (il massimo è sempre 7).
- l’attributo COLOR permette di stabilire il colore del testo:
<FONT COLOR=#rrggbb>testo</FONT>
oppure
<FONT COLOR= nome in inglese del colore >testo</FONT>
Ad esempio:
<FONT COLOR=#ff0000>Questo testo è rosso</FONT>
<FONT COLOR=green >e questo è verde</FONT>
apparirà nel seguente modo:
Questo testo è rosso e questo è verde
-l’attributo FACE permette di stabilire il tipo di carattere da utilizzare:
<FONT FACE=nome del font>testo</font>
dove « nome del font » è il nome di uno dei caratteri disponibili nel sistema.
Ad esempio:
<FONT FACE=Comic Sans MS> Questo testo appare nel carattere Comic Sans</FONT>
apparirà nel seguente modo:
Questo testo appare nel carattere Comic Sans
E' possibile specificare quale carattere adoperare dando anche delle eventuali alternative separandole da virgole. Se il font scelto non fosse presente sulla macchina del visitatore si tenterà di visualizzare il secondo font, poi il terzo, e se nessuno dei tre fosse presente il browser adopererà il suo, quello di default. Evitate dunque fonts particolari o meglio poco comuni, quasi sicuramente nessuno riuscirà a vedere il testo allo stesso modo di come avreste voluto.
Gli attributi possono essere adoperati contemporaneamente:
<FONT FACE="Comic Sans MS" COLOR="red" SIZE="-1">
Testo con font Comic di colore rosso ed una dimensione -1
</FONT>
3. Caratteri accentati e speciali
I browser supportano anche caratteri accentati definiti dall'International Standards Organization. Per essere leggibili su tutti i computer, essi devono essere inseriti nel testo in un modo particolare, specificandoli fra una '&' commerciale e un punto e virgola .
Così per scrivere "perchè" entro un testo HTML, bisogna digitare:
perchè
Ecco una lista dei caratteri accentati e speciali più importanti:
à mostra una a minuscola, con accento grave (à) (ì sarà una ì, ecc.)
À mostra una a maiuscola, con accento grave (À).
á mostra una a minuscola, con accento acuto (á).
â mostra una a minuscola, con accento circonflesso (â).
& mostra una & commerciale.
Æ mostra il dittongo AE maiuscolo (Æ).
æ mostra il dittongo AE minuscolo (æ).
ã mostra una a minuscola, con tilde (ã).
ä mostra una a minuscola, con dieresi (ä).
ç mostra una c minuscola, con cedilla (ç).
Ø mostra una O maiuscola, con lo slash (Ø).
ø mostra una o minuscola, con lo slash (ø).
" mostra le virgolette (").
> mostra il segno maggiore (>).
< mostra il segno minore (<).
mostra uno spazio che non ammette rimando a capo
© mostra il simbolo di copyright (©)
® mostra il simbolo di registrazione (®)
nota: molti editor HTML consentono di inserire direttamente nel testo queste stringhe, semplicemente digitando il carattere speciale da tastiera.
- La stringa è particolarmente interessante, perchè consente di introdurre uno o più spazi bianchi (no breaking space) che possono essere inseriti dove si vuole per distanziare tra loro le parole con più di uno spazio come succede normalmente.
4. Stili di testo
E' possibile ottenere ulteriori differenziazioni nel layout del testo introducendo stili diversi.
• <B>...</B>: grassetto (bold).
• <I>...</I>: corsivo (italic).
• <U>...</U>: sottolineato (underlined).
5. Altri effetti di Layout
Interruzioni forzate di riga: si ottengono con il tag <BR>: dopo di esso, testi o immagini vengono visualizzati nella riga successiva.
Ad esempio:
<H3>Questo testo<BR>va a capo<BR><BR>due volte.</H3>
verrà visualizzato così:
Questo testo
va a capo
due volte.
nota: in questo modo abbiamo ottenuto anche una riga bianca.
Linee di separazione: è possibile introdurre una linea orizzontale di separazione fra testi o immagini, con il tag <HR>. Esso ammette gli attributi SIZE, ALIGN, WIDTH, e NOSHADE, utili per dimensionare in vari modi la linea.
Sintassi :
<HR SIZE="valore" WIDTH="valore" ALIGN="valore">
• SIZE determina lo spessore della linea, espresso in pixel attraverso un valore numerico che può variare da 1 a 100.
• WIDTH determina la lunghezza in percentuale (100%=tutto schermo) o in pixel della linea.
• ALIGN imposta la collocazione della linea e ammette i valori "right", "left" e "center".
• NOSHADE consente di visualizzare una linea piena; in sua assenza, appaiono solo i contorni della linea, come se fosse in rilievo.
Esempio:
<HR NOSHADE SIZE="10" ALIGN="center" WIDTH="30%">
nota: non esiste ordine vincolante per gli attributi, né è obbligatorio che siano indicati; in loro assenza vengono impostati i valori di default SIZE=2, ALIGN=center, WIDTH=100%.
Attenzione!
I tag <BR> e <HR> sono due dei pochi tag html che non hanno tag di chiusura, in quanto non agiscono su un blocco di testo o di istruzioni ma hanno solo l’effetto di inserire qualcosa in un punto esatto della pagina.
Centratura: in generale, è possibile ottenere la centratura di un testo , di un'immagine, di una tabella, ecc. con i tag <CENTER>...</CENTER>, che vanno posti all'inizio e alla fine di tutto ciò che deve essere centrato, anche se si trova su più righe. In caso di ridimensionamento della finestra, la centratura viene automaticamente ripetuta dal browser.
nota: dopo l'end-tag </CENTER> viene automaticamente inserito un ritorno a capo.
Paragrafi: il tag <P> è stato ideato per separare i paragrafi di un testo, o comunque per introdurre linee bianche.
<P> ammette, volendo, l'attributo ALIGN che permette di allineare il testo in quattro possibili modi: CENTER, LEFT, RIGHT, JUSTIFY, rispettivamente per: Centrato, a sinistra, a destra , giustificato
<P ALIGN="center">Questo è <BR>un semplice paragrafo<BR> che è stato centrato.</P>
verrà visualizzato così:
Questo è
un semplice paragrafo
che è stato centrato.
nota: lo stesso effetto, comunque, si otterrebbe con:
<CENTER>Questo è <BR>un semplice paragrafo<BR>che è stato centrato.</CENTER>.
Liste
Una lista è una sequenza di paragrafi rientrati, ciascuno dei quali deve essere preceduto da un tag particolare. In HTML sono possibili diversi tipi di liste: ordinate, non-ordinate, di definizioni, menù e directory.
Liste Ordinate: sono liste che vengono numerate automaticamente dal browser, e, se si cancellano o si inseriscono oggetti, essi saranno rinumerati automaticamente.
I tag che identificano una lista ordinata sono <OL>...</OL>.
Al loro interno, ogni elemento della lista deve trovarsi fra i tag <LI>...</LI> (l'end-tag non è obbligatorio, ma è opportuno metterlo).
Si possono, come evidenziato nell'esempio seguente, inserire liste nelle liste (ordinate e non).
Ecco un esempio di lista ordinata:
<OL>
<LI>primo elemento</LI>
<LI>secondo elemento</LI>
<LI>Lista in lista
<OL>
<LI>oggetto A</LI>
<LI>oggetto B</LI>
<LI>oggetto C</LI>
</OL>
</OL>
che verrà visualizzata così:
1. primo elemento
2. secondo elemento
3. Lista in lista
1. oggetto A
2. oggetto B
3. oggetto C
nota: il tag <OL> ammette l'attributo TYPE, i cui possibili valori sono "A" (la numerazione avverrà con lettere maiuscole), "a" (lettere minuscole), "I" (numeri romani maiuscoli) e "i" (numeri romani minuscoli). Ad es.: <OL TYPE="I">
Inoltre, <OL> ammette l'attributo START, che serve per indicare un numero di partenza della lista diverso da 1. Ad es.: <OL START= "5">.
Infine, <LI> ammette l'attributo VALUE, al quale è possibile assegnare un valore numerico, che farà ripartire da tale valore la numerazione della lista.
Liste Non-ordinate: sono liste utilizzate dove non è importante numerare la sequenza degli oggetti. Vengono presentate sotto forma di un elenco nel quale, al posto dei numeri, compaiono dei bullets (palline).
I tag che identificano una lista ordinata sono <UL>...</UL>, mentre si usano ancora i tag <LI>...</LI> per gli oggetti della lista.
Ecco un esempio di lista non ordinata:
<UL>
<LI>primo elemento</LI>
<LI>secondo elemento</LI>
<LI>Lista in lista<LI>
<UL>
<LI>oggetto A</LI>
<LI>oggetto B</LI>
<LI>oggetto C</LI>
</UL>
</UL>
che verrà visualizzata così:
• primo elemento
• secondo elemento
• Lista in lista
o oggetto A
o oggetto B
o oggetto C
nota: anche il tag <UL> ammette l'attributo TYPE, con il quale è possibile assegnare un ordine dei contrassegni a piacere, diverso da quello di default. I possibili valori di TYPE sono "disc" (compare un dischetto pieno), "circle" (circoletto vuoto), e "square" (quadratino). Ad es.: <UL TYPE="square">
Liste di Definizioni: se si vogliono inserire fra gli oggetti di una lista paragrafi non contrassegnati da numeri o bullets, si possono usare le liste di definizioni, che sono identificate dai tag <DL>...</DL>; ogni oggetto della lista è inserito tra i tag <DT>...</DT>, e ognuno di essi può essere seguito da uno o più paragrafi, ciascuno racchiuso dai tag <DD>...</DD>.
Ecco un esempio:
<DL>
<DT>Primo termine</DT>
<DD>Primo paragrafo del primo termine</DD>
<DD>Secondo paragrafo del primo termine</DD>
<DT>Secondo termine</DT>
<DD>Definizione del secondo termine</DD>
</DL>
l'esempio verrà visualizzato così:
Primo termine
Primo paragrafo del primo termine
Secondo paragrafo del primo termine
Secondo termine
Definizione del secondo termine
nota: l'indentazione utilizzata negli esempi sopra riportati è fatta solo per maggiore chiarezza espositiva, e non è assolutamente necessaria.
7. Commenti
In una pagina html si possono inserire commenti, la cui visualizzazione è limitata alla fase di editing, utilizzando il tag :
<!-- ... -->
ad esempio:
<!-- Questo è un commento visibile editando il file, ma invisibile a qualunque lettura del file via browser.-->
nota: il testo di commento all' interno dei tag può essere di più linee.
I Link
I link sono le entità che permettono la creazione di un ipertesto WWW, consentendo di passare da un documento ad un altro semplicemente con un click sulla parola, frase o immagine che è stata predisposta per fungere da collegamento.
Le parole cliccabili vengono evidenziate dai browser con colori differenti dal rimanente testo (i colori sono selezionabili con gli attributi di <BODY>) e con sottolineature. Nel caso sia un' immagine a contrassegnare il link, l' area cliccabile che la racchiude viene segnalata con una bordatura colorata.
Un link è identificato da tag chiamati Anchors (<A>...</A>), che consentono di saltare sia all'inizio sia ad un punto qualsiasi di un documento; quest'ultimo può essere lo stesso documento di partenza, o un altro documento, che può trovarsi anche su un'altra macchina. Per fare tutto ciò lo il tag <A> ammette degli attributi, che consentono di specificare la destinazione del link:
• HREF="valore": si usa obbligatoriamente nel link di partenza per indicare, come valore, la locazione del documento (URL) a cui ci si vuole collegare.
Nel caso ci si voglia collegare all'inizio di un nuovo documento, la sintassi sarà:
<A HREF="risorsa://indirizzoIP/percorso/nomefile">clicca qui</A>. In questo modo il browser visualizzerà la frase 'clicca qui' con un colore diverso dal rimanente testo (e/o sottolineata), e cliccando su di essa, verrà mostrato il documento reperito con l' URL 'risorsa://indirizzoIP/percorso/nomefile'.
Se il documento da ricercare si trova sulla stessa macchina, è possibile anche utilizzare un indirizzo relativo invece di quello assoluto dell'esempio precedente; nel caso più semplice in cui il documento B si trovi in una sottodirectory di quella corrente, è sufficiente indicare il percorso a partire da tale sottodirectory. Ad esempio:
<A HREF="sottodir/nomefile">clicca qui</A>
Se ci si vuole collegare ad una sezione interna di un documento (dove sia presente un'etichetta definita con l'attributo NAME), la sintassi sarà:
<A HREF="risorsa://indirizzoIP/percorso/nomefile#sezione">capitolo</A>.
Cliccando su 'capitolo', verrà mostrato il documento 'nomefile' a partire dall'etichetta 'sezione'.
Ovviamente, qualora la destinazione del link sia interna al documento di partenza, la sintassi si può semplificare in <A HREF="#sezione">capitolo</A>
• NAME="valore": si usa come un'etichetta che funge da destinazione di un link quando tale destinazione non si trova all'inizio, ma all' interno di un documento. La presenza di questo attributo conferisce quindi all' Anchor la funzione di 'destinazione' di un link, identificata dal valore fra le virgolette. Ad esempio:
<A NAME="sezione">Capitolo 2</A>
In questo modo, per chi si collega a 'sezione'(vedi es. precedente), il documento viene mostrato a partire da 'Capitolo 2'.
Le immagini
Immagini grafiche GIF o JPG possono essere incluse in ogni punto del documento attraverso il tag <IMG> (che non prevede tag di chiusura). Esso comporta l'attributo obbligatorio SRC="valore", nel quale il valore è l' URL del file che contiene l'immagine da mostrare.
Sintassi :
<IMG SRC="risorsa://indirizzoIP/percorso/nomefile">
Come nel caso di <A HREF="....">, anche qui si possono usare indirizzi relativi .
Il tag <IMG> ammette numerosi altri attributi:
• ALIGN="valore": determina l'allineamento dell'immagine e può assumere i seguenti valori:
* "bottom": allinea il margine inferiore dell'immagine con la linea base della riga che contiene l'immagine. E' il valore di default.
* "top": allinea il margine superiore dell'immagine con il più alto elemento della riga che contiene l'immagine
* "middle": allinea il centro dell'immagine con la linea base della riga che contiene l'immagine.
* "left": pone l'immagine all'estrema sinistra della riga.
* "right": pone l'immagine all'estrema destra della riga.
* "center": pone l'immagine al centro della riga.
• ALT="valore": permette di specificare come valore un testo qualsiasi che apparirà al posto dell'immagine con browser non-grafici, e, con gli altri browser, apparirà nei casi in cui l'immagine non sia reperibile. Si può settarlo a null (alt=""), se si vuole che in alternativa all'immagine non venga visualizzato alcunché.
• VSPACE="valore" e HSPACE="valore": consentono di definire, in pixel, lo spazio verticale e orizzontale che deve essere lasciato libero intorno ad una immagine.
E' utile per distanziare un'immagine da un testo o da un'altra immagine, ma può essere d'intralcio il fatto che lo spazio si crea sia da una parte che dall'altra.
• BORDER="valore": definisce intorno all'immagine un bordo avente il colore del testo, la cui dimensione in pixel può essere specificata tramite un valore numerico. Il valore di default è "0". Tuttavia, con BORDER="0", si ottiene anche l'effetto di eliminare la bordatura che viene automaticamente tracciata se l'immagine segnala un link (può servire per eliminare ridondanze, se l'immagine di per sé esplicita già chiaramente l'esistenza del link)
• WIDTH="valore" e HEIGHT="valore": specificano larghezza e altezza, in pixel, dell'immagine da caricare, in modo che tali valori non debbano essere calcolati dal browser, velocizzando quindi la visualizzazione.
Esempio:
<IMG ALIGN="left" VSPACE="10" WIDTH="200" HIGHT="100" SRC="images/fiore.gif" ALT="gardenia">
Potremo così visualizzare l'immagine di una gardenia che si trova nella sottodirectory 'images', avente le dimensioni di 200x100 pixel, e posta a 10 pixel dall'estrema sinistra della riga. Se l'immagine non può essere caricata, verrà mostrata la scritta 'gardenia'.
Come già detto, gli attributi non hanno un ordine obbligato.
Le Tabelle
Le tabelle possono rivelarsi utili non solo per incolonnare dati, ma anche per formattare una qualsiasi pagina che richieda un layout particolare: infatti, poiché le tabelle possono venire automaticamente proporzionate dal browser in relazione alle dimensioni di ciò che contengono e della pagina, consentono -entro ragionevoli limiti- di mantenere inalterati i rapporti spaziali fra i testi e le immagini al loro interno.
1. I tag <TABLE>...</TABLE> : permettono la creazione delle tabelle; essi devono aprire e chiudere la parte dell' HTML dedicata a costruire una tabella, e quindi gli altri tag di tabella (<TR>...</TR>, <TD>...</TD>) devono essere compresi all' interno di <TABLE>...</TABLE>.
Il tag di apertura <TABLE> ammette i seguenti attributi:
• BORDER="valore": definisce la presenza o no di un bordo in rilievo intorno alla tabella, il cui spessore può essere specificato in pixel. Se il valore è settato a zero (BORDER="0"), viene annullato lo spazio normalmente riservato al bordo, e si ottengono tabelle compatte. Se invece il valore non è specificato, viene assunto quello di default, che è "1". In assenza dell'attributo, il bordo non appare.
• CELLSPACING="valore": definisce lo spazio fra le celle della tabella; il suo valore di default è "2".
• CELLPADDING="valore": definisce lo spazio in pixel fra il bordo interno delle celle e il loro contenuto; il suo valore di default è "1". Volendo una tabella particolarmente compatta, si può usare:
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
......
</TABLE>
• WIDTH="valore": e HIGHT="valore" definiscono larghezza e altezza della tabella, con un valore assoluto in pixel, oppure, a scelta, con un valore percentuale riferito alle dimensioni della pagina. In tal modo viene annullato il complesso sistema con cui il browser razionalizza automaticamente le misure delle tabelle in funzione del loro contenuto e delle dimensioni della pagina, e vengono imposte una larghezza e/o un'altezza prefissate.
2. I tag <TR>...</TR> : definiscono una riga della tabella. Il numero di righe in una tabella
è specificato dal numero di tag <TR> compresi fra <TABLE> e </TABLE>.
Il tag di apertura <TR> ammette come attributi:
• ALIGN="left/center/right"
• VALIGN="top/middle/bottom"
tali attributi determinano l'allineamento orizzontale e verticale di default del contenuto delle celle dell'intera riga.
3. I tag <TD>...</TD> : definiscono una cella della riga, e contengono al loro interno i dati
(testi, immagini, liste, ecc.) da visualizzare. Devono essere compresi fra i tag che
definiscono la riga (<TR>...</TR>). Il numero di celle in una riga è quindi specificato dal
numero di tag <TD> situati fra <TR> e </TR>.
Ogni cella può contenere qualunque tag normalmente presente nel BODY dell'HTML.
Il tag di apertura <TD> ammette come attributi:
• ALIGN="left/center/right" e VALIGN="top/middle/bottom"
L' allineamento attribuito ad una singola cella viene rispettato anche se quello attribuito alla riga dove si trova la cella è differente.
I valori di default sono ALIGN="left" e VALIGN="middle"
• NOWRAP (senza valore): serve per fare in modo che una riga all'interno della cella non venga interrotta; infatti, per proporzionare la cella rispetto alle altre, il browser può interrompere ovunque le righe interne, mandando a capo l'eventuale testo; invece, con NOWRAP, ciò non avviene. Ad es.:
<TD NOWRAP>questo testo non verrà troncato</TD>
• COLSPAN="valore": specifica con un numero quante colonne della tabella verranno occupate dalla cella. Il valore di default è "1".
• ROWSPAN="valore": specifica con un numero quante righe della tabella verranno occupate dalla cella. Il valore di default è "1".
nota : celle vuote senza elementi appaiono normalmente prive di bordo; volendo mostrare una cella vuota con il bordo si può inserire un' interruzione di riga nella cella: <TD><BR></TD> oppure uno spazio: <TD> </TD>
4. I tag <TH>...</TH> : servono per le intestazioni; hanno le stesse caratteristiche di <TD>...</TD> e ammettono gli stessi attributi, con l'eccezione che i testi appaiono in grassetto. Per default, ALIGN="left" e VALIGN="middle".
5. I tag <CAPTION>...</CAPTION> : permettono, volendo, di attribuire un titolo alla tabella; questo può apparire a scelta sopra o sotto di essa, tramite l'attributo ALIGN="top/bottom" (di default è "top"). Il titolo appare sempre centrato rispetto alla lunghezza della tabella e, se è più lungo, può subire uno o più ritorni a capo mantenendo la centratura.
I Frames
I Frames sono un'ottima soluzione per la struttura di un sito più o meno complesso. Essi permettono infatti di suddividere la finestra del browser in sezioni separate, ciascuna delle quali può essere aggiornata o contenere dati in modo completamente autonomo e diverso rispetto alle altre.
Frame principale è il più grande, dove visualizzare le varie pagine.
Per creare una pagina sudivisa in più frame si usa il tag
<FRAMESET>...</FRAMESET>
cha va a sostituirsi al tag <body>
Il tag <FRAMESET> è l'elemento principale, possiede due attributi quali ROWS e COLS. Al suo interno può contenere annidati altri elementi quali <FRAMESET>, <FRAME> o <NOFRAME>.
ROWS
L'attributo ROWS raccoglie i valori per l'altezza della riga, quando si suddivide la finestra principale in righe. Questi valori devono essere separati da virgole e possono essere espressi sia in numeri interi che in numeri percentuale; nel primo caso equivalgono al numero di pixel, mentre nel secondo caso sono in percentuale delle dimensioni della finestra del browser.
Ad esempio:
<FRAMESET ROWS="30%, 70%">
crea una cornice suddividendo orizzontalmente la finestra in due parti, la prima che occupa il 30% delle dimensioni totali lasciando il rimanente 70% alla seconda finestra.
Si possono adoperare anche valori numerici, senza il simbolo di % percentuale, in questo caso si fa riferimento al numero di pixel dello schermo. Queste dimensioni restano fisse indipendentemente dalle dimensioni della finestra del browser
Ad esempio:
<FRAMESET ROWS="150, 600">
crea due finestre con dimensioni fisse (150 e 600 px) indipendentemente dalla risoluzione e dalle dimensioni del monitor, grandi o piccoli che siano.
Per evitare questa limitazione, si possono adoperare i caratteri jolly (asterisco *) che significano imposta la massima dimensione rimanente.
Ad esempio:
<FRAMESET ROWS="150, *">
crea un frame orizzontale di dimensione fissa di 150 pixel lasciando per il secondo frame tutto lo spazio rimanente, qualsiasi esso sia, è ovvio che dipende soltanto dl monitor e dalla risoluzione grafica adoperata dal visitatore. L'esempio pratico sotto è al solo scopo di rendere l'idea di come avviene la suddivisione.
Frame superiore fisso 150 pixel |
Frame inferiore |
COLS
L'attributo COLS raccoglie i valori per la larghezza della colonna, quando si suddivide la finestra principale in colonne. Il principio di funzionamento è identico a quanto detto per l’attributo ROWS con la sola differenza che la suddivisione avviene in verticale invece che in orizzontale.
L'esempio pratico sotto è al solo scopo di rendere l'idea di come avviene la suddivisione.
Frame laterale sinistro fisso 150 pixel |
Frame laterale destro che varia occupando il rimanente spazio della finestra |
<FRAME>
Il tag FRAME definisce le proprietà del frame stesso all'interno di FRAMESET,. questi gli attributi fondamentali:
SRC
NAME
SCROLLING
NORESIZE
SRC="url"
L'attributo SRC="url" definisce l'indirizzo del file html che verrà visualizzato nella sezione frame nel frameset. Potrebbe sembrare complicato ma altro non è che il file html da visualizzare.
Ad esempio:
<FRAME SRC="nome_file.html”>
NAME="nome_frame"
L'attributo NAME è di vitale importanza ai fini di un corretto funzionamento, serve infatti per assegnare un nome al frame stesso facendolo diventare bersaglio di collegamenti da altri frames o semplici links tramite l'attributo TARGET.
Non confondete il nome che avete scelto per il file html con il nome da assegnare al frame, questi potrebbero essere due nomi completamente diversi. Se tutto ciò può sembrare complesso, a fine paragrafo un esempio riassuntivo chiarirà sicuramente meglio ogni cosa.
SCROLLING="yes|no|auto"
L'attributo SCROLLING serve per il controllo della barra laterale di scorrimento, quando il contenuto della pagina supera le dimensioni del frame viene visualizzata una barra di scorrimento.
yes= attiva la visualizzazione di questa barra,
no= nessuna barra,
auto= solo se il contenuto del frame la richiede.
NORESIZE
L'attributo NORESIZE non ha alcun parametro, se impostato evita il ridimensionamento del frame quando la pagina viene visualizzata nel browser. Diversamente sarà possibile, portando il puntatore del mouse nella divisione dei due frames, ottenere una doppia freccia di posizionamento.
<NOFRAMES>...</NOFRAMES>
Il tag NOFRAMES serve per creare un alternativa a quei browser che non supportano i frames. Infatti non tutti i browser, specie quelli di vecchia generazione, supportano la gestione dei frames, conviene quidi creare un'alternativa o semplicemente un messaggio di avviso fra i tags <NOFRAMES>...</NOFRAMES>
Ad esempio:
<NOFRAMES>
Spiacente ma il tuo browser non supporta i frames, clicca su questo link per continuare
</NOFRAMES>
ESEMPIO DI CREAZIONE DI UN SITO CON FRAME
Forse un esempio pratico potrebbe chiarire ogni dubbio, diciamo subito che la struttura di un sito a frames si basa su almeno 3 pagine web:
Una per dichiararne la struttura.
Le altre due rispettivamente per i due frames.
Ipotizziamo di voler creare un sito con un frame laterale per il menu, uno centrale principale per la navigazione, ed uno fisso in alto per eventuali sponsor, musica, informazioni varie.
Inizieremo col creare le tre pagine menu.htm, home.htm e sponsor.htm che conterranno il normale codice html per ottenere ciò che si vuole visualizzare.
Fatto questo non resta che creare la pagina per i frames che chiameremo index.html:
<html>
<head>
<title>Home Page</title>
</head>
<FRAMESET COLS="20%,80%">
<FRAME NAME="menu" SRC="menu.html" SCROLLING="auto">
<FRAMESET ROWS="15%,85%">
<FRAME NAME="sponsor" SRC="sponsor.html" SCROLLING="auto">
<FRAME NAME="homepage" SRC="home.html" SCROLLING="auto">
</FRAMESET>
</FRAMESET>
</html>
Il listato sopra produrrà un risultato simile a questo sotto, si noti la struttura nidificata del frameset che crea a sua volta due finestre dalle due precedentemente impostate.
Frame menu |
Frame Sponsor |
Frame Home Page |
I form
Uno dei fattori che ha decretato il successo del Web è senz’altro la possibilità di interagire: la possibilità cioè di iscriversi a servizi di vario tipo (ad esempio mailing list), ma soprattutto di partecipare a vere e proprie comunità virtuali..
Per organizzare questo genere di servizi è necessario raccogliere in qualche modo i dati dell’utente: per farlo si utilizzano, in maniera molto semplice, i moduli (cioè i form).
L’invio dei dati è solitamente organizzato in due parti:
- una pagina principale che contiene i vari campi dei form, che consentono all’utente di effettuare delle scelte, scrivere del testo, inserire un’immagine
- una pagina secondaria che viene richiamata dalla principale e che effettua "il lavoro" vero e proprio di processare e raccogliere i dati. Di norma si tratta di una pagina di programmazione che si trova sul server. Può essere un cgi, oppure una pagina asp, php, jsp o altro
Noi ci occuperemo della sola pagina principale, dal momento che il modo in cui struttura una pagina di programmazione esula dagli obiettivi della presente guida.
1. Name, action e Method
Per creare una pagina con dei moduli, bisogna utilizzare l’apposito tag <form>: si tratta di un elemento di blocco, come il <p>, quindi il tag <form> lascia uno spazio prima dell’apertura e dopo la chiusura.
<form name="datiUtenti" action="paginaRisposta.php">
….
</form>
Nel caso in non si desideri avere dello spazio superfluo è possibile modificare i bordi del tag utilizzando i fogli di stile. Con questa semplice sintassi:
<form name="datiUtenti" style="border:0px" action="paginaRisposta.php">
Come si può vedere, "name" serve per indicare il nome del form, "action" indica l’URL del programma o della pagina di risposta che processerà i dati.
Grazie all’"action" è anche possibile far sì che i dati vengano inviati in e-mail al webmaster (si tratta infatti a tutti gli effetti di un riferimento a un URL). Il codice è questo:
<form action="mailto:tuamail@nomeDominio.it?subject=Oggetto predefinito"
enctype="text/plain" method="POST">
vedremo in una delle prossime lezioni come utilizzare concretamente questa sintassi.
Quando creiamo un form possiamo scegliere due metodi di invio: GET e POST.
Con il metodo GET la pagina di risposta viene contattata e i dati vengono inviati in un unico step. Nell’URL della pagina di risposta potremo allora vedere tutti i parametri nella barra degli indirizzi.
Alcuni server hanno tuttavia hanno delle limitazioni per quel che riguarda il metodo GET e non consentono di inviare form con valori superiori a 255 caratteri complessivi. Il metodo GET è dunque particolarmente indicato per form con pochi campi e pochi dati da inviare.
La sintassi per l’invio in get è:
<form name="datiUtenti" action="paginaRisposta.php" method="GET">
Nel metodo POST invece l’invio dei dati avviene in due step distinti: prima viene contattata la pagina sul server che deve processare i dati, e poi vengono inviati i dati stessi. Per questo motivo i parametri non compaiono nella query string (dunque se non si desidera che i parametri siano mostrati all’utente questo metodo è preferibile).
In questo caso non ci sono limiti sulla lunghezza dei caratteri. La sintassi è:
<form name="datiUtenti" action="paginaRisposta.php" method="POST">
2. Il tag Input
Per quel che riguarda i campi dei form il tag più utilizzato è l’<input>, che è senza chiusura. Per specificare un determinato tipo di campo è sufficiente indicare il tipo di input.
Ad esempio:
<input type="text">
crea un campo di testo.
<input type="button">
crea un bottone.
I vari <input> sono dotati di attributi che consentono di indicare il tipo di campo, il nome ( ad esempio per interagire con Javascript ), e il valore (per lo più il testo visualizzato).
<input type="text" name="tuoTesto" value="qui il tuo testo">
che dà:
3. I bottoni (sumbit, reset)
Non c’è form che si rispetti senza bottone di invio.
La sintassi tradizionale per creare un bottone di invio è:
<input type="submit" value="invia I dati">
Ad esempio:
<form action=http://www.itsosmilano.it target="_blank">
<input type="submit" value="visita HTML.it">
</form>
cioè:
Un altro bottone utile è il "reset" che – una volta premuto - consente di riportare il form allo stato originario, cancellando ogni cosa scritta finora dall’utente. Ecco un esempio:
<form>
<input type="text"><br>
<input type="reset" value="cancella">
</form>
Esiste infine un tipo di bottone generico, che non esegue nessuna azione particolare, ma che può essere ad esempio utilizzato per associare degli eventi tramite Javascript.
<form>
<input type="button" value="bottone generico">
</form>
4. Inserire testo (campo testo, textarea, password)
Per consentire all’utente di inserire del testo è possibile utilizzare un campo testo.
Se il campo è su una singola linea avremo:
<input name="mioTesto" type="text" value="qui il tuo testo" size="40" maxlength="200">
"maxlenght" indica il numero massimo di caratteri che l’utente può inserire, con "size" si esprimono invece le dimensioni del campo di testo (la larghezza è data dal numero di caratteri).
Se si ha la necessità di indicare un campo che consenta di inserire una grande quantità di testo conviene invece utilizzare una "textarea" ("area di testo"). Ecco la sintassi:
<textarea name="testo" cols="40" rows="10">
qui puoi scrivere il tuo testo
</textarea>
"rows" indica il numero di righe della textarea, "cols" il numero di caratteri (cioè di colonne) che ogni riga può contenere.
Come si può vedere, se si vuol indicare del testo predefinito in questo caso bisogna inserirlo fra l’apertura e la chiusura del tag.
Esiste infine il campo password che codifica i caratteri insieriti con degli asterischi:
<input name="mioTesto" type="password" size="18" maxlength="8">
da notare che la codifica fornisce una protezione soltanto per chi eventualmente stia sbirciando sul monitor dell’utente. L’invio dei dati attraverso il web avviene,se non vengono adottate altre misure di sicurezza, 'in chiaro'.
I campi di testo possono essere anche di sola lettura. Ad esempio:
<input name="mioTesto" type="text" value="leggere l'informativa" size="25" maxlength="8" readonly>
O disabilitati:
<input name="mioTesto" type="text" value="leggere l'informativa" size="25" maxlength="8" disabled>
5. Checkbox
Con i checkbox possiamo consentire all’utente di operare delle scelte multiple. Ad esempio:
<fieldset>
<div>Linguaggi conosciuti</div><br>
<input type="checkbox" name="html" value="html"> html
<br>
<input type="checkbox" name="css" value="css"> css
<br>
<input type="checkbox" name="javascript" value="javascript"> JavaScript
</fieldset>
Si possono anche selezionare uno o più valori di default:
<input name="html" type="checkbox" value="html" checked>
ed è possibile disabilitare una casella:
<input name="html" type="checkbox" value="html" disabled>
6. Radio button
I "radio button" ("bottoni circolari") invece consentono di effettuare una scelta esclusiva. In questo caso quindi una scelta esclude l’altra. Per ottenere questo effetto i campi devono avere lo stesso nome e differente valore:
<fieldset>
<div>Linguaggi conosciuti</div>
HTML<input type="radio" name="linguaggio" value="html">
CSS <input type="radio" name="linguaggio" value="css">
JavaScript <input type="radio" name="linguaggio" value="javascript">
</fieldset>
Anche in questo caso è possibile assegnare un valore di default o disabilitare un pulsante.
<input type="radio" name="linguaggio" value="html" checked disabled>
7. Menu di opzioni (select)
Grazie al tag <select> è possibile costruire dei menu di opzioni. In questo caso ciascuna voce deve essere compresa all’interno del tag <option> (la chiusura del tag è opzionale) e il valore deve essere specificato attraverso l'attributo "value". Con l’attributo "selected" si può indicare una scelta predefinita:
<select name="siti" >
<option value="1" selected> www.itsosmilano.it
<option value="2">studenti.it
<option value="3">essereononessere.it
</select>
Infine con il tag select è possibile impostare anche delle scelte multiple. Come si può vedere, utilizzando l’attributo "multiple" l’aspetto del tag select cambia notevolmente:
Quale siti visiti?<br>
<select name="siti" multiple>
<option value="1"> www.itsosmilano.it
<option value="2"> studenti.it
<option value="3"> agratis.it
<option value="4">font.it
<option value="5" >altroconsumo.it
</select>
Utilizzando il tasto "ctrl" l’utente può così effettuare delle scelte multiple.
Tramite l’attributo "size" si può specificare il numero delle voci che devono comparire nel menu, e conseguentemente regolare l’altezza del menu, aggiungendo o togliendo la barra di scorrimento verticale.
Quale siti visiti?<br>
<select name="siti" size="5" multiple>
<option value="1"> www.itsosmilano.it
<option value="2"> studenti.it
<option value="3"> agratis.it
<option value="4"> font.it
<option value="5" > altroconsumo.it
</select>
Fonte: http://dokeos.irrelombardia.it/courses/MOLINARI1/document/STC/materialeV/maturita/Html_-_Guida_di_base.doc?cidReq=MOLINARI1
Autore : www.itsosmilano.it
Appunti per guida HTML
La semplice pagina web
La più semplice pagina web qui presentata ha l'intenzione di mostrarti la facilità del linguaggio HTML. Se poi vorrai aggiungere optionals alla tua pagina web, le nostre guide e lezioni online ti insegneranno come fare.
|
Aggiungi un colore o un'immagine di background alla tua pagina
Una delle cose più semplici da imparare riguarda l'aggiunta di un colore o di una immagine di background alla tua web page. Se consulti la nostra semplice pagina d'esempio, noterai un tag html denomitato <Body>. All'interno del tag Body noi possiamo fissare il colore o l'immagine di background desiderata per la nostra web page. |
Aggiungi testo in corsivo, grassetto o sottolineato
Per dare maggior enfasi ad una pagina web si possono usare diversi accorgimenti fra i quali l'uso dei tags Grassetto, Corsivo e Sottolineato.
|
Aggiungi intestazioni alla tua pagina
Talvolta è necessario utilizzare delle intestazioni per titoli e sottotitoli. Per creare titoli e sottotitoli segui gli esempi qui di seguito riportati: Intestazione esempio</H1> Intestazione esempio</H2> Intestazione esempio</H3> Intestazione esempio</H4> Intestazione esempio</H5> Intestazione esempio</H6> |
Aggiungi un collegamento E-mail alla tua pagina
Uno dei tags più comunemente usati in html è il tag "mailto". Il tag "mailto" permette agli utenti di inviare posta semplicemente cliccando sul tuo link "mailto".
|
Aggiungi un link ad altre pagine
O prima o poi aggiungerete nuove pagine web al vostro server XOOM.it. Naturalmente prima di fare ciò dovrete creare un link a pagine aggiuntive nella vostra Home Page. |
Aggiungi immagini alla tua pagina
Aggiungere immagini alla tua pagina web è un lavoro facile e divertente! Per prima cosa scegli l'immagine che desideri inserire nella tua pagina. Nell'esempio che segue ho incluso un'immagine chiamata welcome.gif |
Aggiungi un file scaricabile
Puoi includere nella tua web page files direttamente scaricabili. Se hai intenzione di inserire un file scaricabile, si consiglia di comprimere prima il file in formato .zip (per chi utilizza Windows) o formato .sit (per chi utilizza Mac) |
Tutto sui Fonts per la tua Web Page
L'uso dei Fonts offre alle tue pagine un tocco di personalità. Con questa guida imparerai ad utilizzare i tags Font Face, Font Size e Font Color. |
Aggiungi file audio alla tua Web Page
Puoi aggiungere un file audio che si attiva automaticamente all'apertura della tua Web Page con l'apposito tag < EMBED SRC="sound.wav">. Utilizzando entrambi i tags EMBED SRC e BGSOUND SRC sarai sicuro che tutti gli utenti che entreranno nel tuo sito, sia attraverso Netscape che Internet explorer, potranno ascoltare il suono in sottofondo. |
Aggiungi una lista alla tua pagina Web
Stai cercando una maniera semplice per elencare tutte le tue informazioni? Se così è puoi utilizzare questa guida che ti insegnerà a creare delle liste nella tua pagina web. |
Aggiungi righe orizzontali alla tua pagina !
Impara a creare una riga orizzontale (separatore)! Per riprodurre l'esempio sopra riportato devi semplicemente digitare <HR>
Ecco la dimostrazione di una riga orizzontale di dimensione 4, spessore 50% e allineata a sinistra. Questa è la stringa html da utilizzare per creare la riga sopra descritta: |
Fonte: http://web.tiscali.it/ocalesteppe/fileDOWNLOAD/appunti%20html.doc
Autore del testo: non indicato nel documento di origine
Appunti di Tecnologia e Informatica
(informatica_html_01.doc)
IL LINGUAGGIO HTML
(Hyper Text Markup Language)
(linguaggio di contrassegno di ipertesti)
Il linguaggio HTML non è un vero e proprio linguaggio di programmazione ma può essere definito come un linguaggio di marcatura che permette di descrivere come il contenuto di un documento verrà presentato.
A cosa potrebbe servirti?
Quasi tutti i documenti sul Web (una rete di migliaia di computer) sono scritti con questo linguaggio che consente di visualizzare i contenuti delle pagine nella veste grafica preferita e permette l'introduzione di elementi multimediali (suoni, immagini, filmati...) nonché la consultazione di documenti in modo non sequenziale. In altre parole non c'è bisogno di passare da una pagina all'altra come in un libro, basta cliccare su un “link” e si passa immediatamente ad altra pagina. Puoi riconoscere facilmente un “link” perchè è scritto in modo un po' diverso dal resto delle parole e soprattutto perchè quando la freccetta del mouse ci passa sopra si trasforma in una manina.
Con questo linguaggio puoi realizzare un tuo sito personale, modificare un sito già esistente, organizzare in modo dinamico i tuoi appunti, classificare una serie di oggetti, realizzare giochi a quiz, realizzare semplici videoclip in cui associare immagini o testi alle canzoni preferite, ….
Comprendere come funziona questo linguaggio ti aiuta inoltre a capire come funziona un calcolatore.
Di cosa hai bisogno?
Per creare la tua pagina HTML non hai bisogno di programmi particolari. Hai già tutto quello che ti serve sul computer, cioè un programma che si chiama "blocco note", e si trova generalmente installato su tutti i computer.
E’ importante ricordarsi di dare correttamente il nome alla pagina:
- dove è scritto "nome file" scrivi "nome.html"
- dove è scritto "salva come" clicca su "Tutti i File *.*"
Un documento scritto in HTML contiene sia il testo, sia il codice necessario a determinarne l'aspetto finale in tutti i suoi contenuti, compresi collegamenti, immagini e così via.
Il testo viene scritto normalmente, mentre gli elementi che caratterizzano la struttura del documento vengono chiusi fra < e >, dette parentesi angolari.
Gli elementi del linguaggio vengono detti TAG, essi di solito sono utilizzati a coppie, e possono contenere uno o più attributi.
I Tag: Nome - Parametri - Valori
- I tag sono i comandi di HTML, dunque eseguono azioni specifiche (andare a capo, scrivere in grassetto, ecc.) e non vengono visualizzati nella pagina finale.
- I tag HTML devono rispettare regole sintattiche
- Un tag inizia sempre con il carattere < (minore) e finisce sempre con il carattere > (maggiore);
- Un tag può avere oltre al nome uno o più parametri che specificano le modalità della sua azione.
- La sintassi dei parametri è nomeparametro = "valore"; i parametri ammissibili per ogni tag sono in genere molto numerosi ed alcuni di essi sono accettati da alcuni browser e non da altri. (gli esempi successivi chiariranno meglio)
- Alcuni tag fanno da delimitatori e richiedono un tag terminale; per esempio <b> significa grassetto ed è quindi necessario anche un terminatore </b> che indichi dove deve finire il grassetto.
- Alcuni tag non richiedono terminatore e si dicono vuoti; per esempio <hr> dice semplicemente al browser di tracciare una linea orizzontale e non richiede terminatore.
- I tag possono essere scritti indifferentemente con lettere minuscole o maiuscole
Le pagine HTML sono sempre aperte e chiuse con un tag particolare che è <HTML>. Quindi la prima parola che scriverai sul qualunque pagina web sarà <HTML> e l'ultima sarà </HTML>.
Tutto ciò che andrai a inserire tra questi tag sarà letto dal computer come codice HTML.
Dopo aver aperto il documento bisogna scrivere un'intestazione (head) che comprende il titolo della pagina e altre informazioni di carattere generale sulla pagina; l'intestazione inizia con il tag <head> e finisce con il tag </head>; il titolo deve essere compreso tra i tag <title> e </title>; il titolo della pagina è ciò che comparirà sulla barra superiore della finestra di Windows.
All’intestazione segue il corpo (body) che contiene il testo vero e proprio che deve essere compreso tra i tag <body> e </body>.
Esempio di documento html:
<HTML>
<HEAD>
<TITLE> TITOLO SULLA BARRA SUPERIORE </TITLE>
</HEAD>
<BODY>
TESTO DEL DOCUMENTO
</BODY>
</HTML>
N.B. un TAG è così strutturato:
<NOME PARAMETRO=”VALORE”>
</NOME>
Nelle pagine seguenti analizzeremo I principali Tag.
<HTML>
Apre e chiude </html> un documento Html. Serve per far capire al Browser che stiamo visualizzando un documento HTML
<HEAD>
Limita la testata o intestazione del documento. Tutte le informazioni contenute nell’intestazione sono utili per il Browser, per il Webmaster (il “costruttore” della pagina) e per i motori di ricerca.
<TITLE>
E’ compreso nella testata. Definisce ciò che compare sulla barra superiore della finestra.
<BODY>
Questo Tag delimita il corpo del documento, la parte del documento che verrà visualizzata. Anche nel body possiamo aggiungere parametri validi per tutto il documento:
Parametri: background (imposta un’immagine come sfondo) valore: sfondo.jpg
bgcolor (colore di sfondo) valore: green, red, ecc
text (colore del testo) valore: green, red, ecc
link (colore del link) valore: green, red, ecc
vlink (colore del link già visitato) valore: green, red, ecc
alink (colore dell’ultimo link cliccato) valore: green, red, ecc
<BR>
Se si vuole andare a capo,senza che sia terminata una riga, non basta premere il tasto Invio, che ha effetto nel Blocco Note ma non nella visualizzazione della pagina con un browser (un programma come explorer che serve per navigare nel Web o visualizzare ipertesti). Occorre perciò usare il tag <BR>.
<B> </B> Ciò che è compreso tra questi tag è scritto in grassetto
<I> </I> Ciò che è compreso tra questi tag è scritto in corsivo
<SUB> </SUB> Definisce il pedice: esempio H<sub> 2</SUB>O viene scritto H2O
<SUP> </SUP> Definisce l’apice: esempio x<SUP> 2</SUP> viene scritto x2
<TT> </TT> Il testo compreso sembra scritto da una macchina da scrivere
<FONT nomeparametro = "valore">testo da modificare</FONT>
Definisce il testo compreso tra i due tag
Parametri: color(colore) valore: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red,
silver, teal, white, yellow, #35b800,ecc
size(dimensione) valore: da 1 a 10, oppure +1; +2 ecc
face(tipo di carattere) valore: arial, tahoma, ecc
<HR>
Crea una linea orizzontale. Non ha bisogno di essere chiuso.
Parametri: align(definisce l’allineamento) valore: center, left, right
size(dimensione) valore: 1, 2, ecc
color(colore) valore: aqua, black, blue, fuchsia, ecc
width(lunghezza in pixel) valore: 1, 2, ecc
noshade(per eliminare l’effetto 3d) (SENZA VALORE)
<MARQUEE testo da far scorrere </ MARQUEE >
Fa scorrere il testo compreso tra i due tag
Parametri: align(definisce l’allineamento) valore: top, middle, bottom.
behavior(comportamento) valore: scroll, alternate, slide.
bgcolor(colore di sfondo) valore: aqua, black, blue, fuchsia, ecc
width(lunghezza in pixel) valore: 100, 222, ecc
height(altezza in pixel) valore: 100, 222, ecc
direction valore: left, right, up, down.
hspace(spazio libero ai lati) valore: 100, 222, ecc
vspace(spazio libero sopra e sotto) valore: 100, 222, ecc
loop(passaggi) valore: 1, 2, ecc
scrollamount(pixel tra 2 spostament) valore: 1, 2, ecc
scrolldelay(millisecondi tra 2 spostamenti) valore: 1, 2, ecc
Gli elenchi non ordinati
<UL> apre l’elenco: parametro: TYPE (definisce il simbolo) valore (disc, circle, square)
<LI> precede ogni elemento dell’elenco
</UL> chiude l’elenco
Gli elenchi Ordinati
<OL> apre l’elenco: parametro: TYPE (definisce il simbolo) valore (a, A, I, i)
<LI> precede ogni elemento dell’elenco
</OL> chiude l’elenco
Le Tabelle
<TABLE> apre la tabella
parametro: border (definisce il bordo) valore (1, 2, 3, ecc.)
parametro: bordercolor (definisce il colore del bordo) valore (red, blue, ecc.)
parametro: width (definisce la larghezza) valore (100, 230, 339, ecc.)
parametro: height (definisce l’altezza) valore (100, 230, 339, ecc.)
parametro: cellpadding (spazio intorno alla scritta) valore (1, 2, 3, ecc.)
parametro: cellscpacing (spazio tra le celle) valore (1, 2, 3, ecc.)
<TR> inizia una riga
</TR> chiude la riga
<TD> inizia una cella
parametro: align (definisce l’allineamento orizzontale) valore (center, left, ecc.)
parametro: valign(definisce l’allineamento verticale) valore (top, bottom, ecc.)
parametro: bgcolor (definisce il colore di sfondo) valore (red, ecc.)
parametro: background (definisce l’immagina di sfondo)
</TD> chiude la cella
</TABLE> chiude la tabella
I Collegamenti
I link sono la parte più importante del world wide web. Ci sono tre tipi di link:
- Link che si agganciano alla pagina corrente (Interni).
- Link per altre pagine dello stesso sito (Locali).
- Link per pagine al di fuori del sito (Globali).
È possibile creare testi e immagini funzionanti come link. Con un po' di creatività, anche altri oggetti, come bottoni o persino menù a discesa possono diventare link.
Come fare un link
I tag usati per generare i link sono <A> e </A>. Tutto quello che è contenuto tra questi due tag si comporterà come un link. La meta del link viene specificata aggiungendo al tag <A> l'attributo href.
L'esempio qui sotto ti mostra come far diventare la parola cerca un link per yahoo.
<a href="http://www.yahoo.com">cerca</a> per andare su yahoo.
I colori per i link di testo
Ci sono alcuni attributi che possono essere utili per il controllo dei colori dei link di testo.Possiamo:
a) Definire i colori per tutti i link sulla pagina: Il colore generale dei link di testo è specificato nel tag <body>, come già visto utilizzando link, vlink, alink.
b) Definire i colori per i singoli link sulla pagina: Mettendo dei TAG “font” tra i tag <a href> e </a>. Questo metodo funziona su tutti i browser tranne MSIE 3.
Esempio:<a href="http://www.yahoo.com"><font color="FF00CC"> cerca</font></a>
Nota: E' importante che i due tag <font> e </font> siano scritti tra i tag <a href> e </a>.
Tipi di mete dei link
Per default, i link si aprono nella finestra o schermata corrente. Se vuoi che il link si apra in un'altra finestra, devi stabilire una meta ("target"). Per fare questo ti basta aggiungere il parametro target="……" al tag <a href>. Proviamo ad aprire yahoo in una nuova finestra:
<a href="http://www.yahoo.com" target="_blank">
Le mete predefinite sono:
_blank scarica la pagina in una nuova finestra del browser.
_self scarica la pagina nella finestra corrente.
_parent scarica la pagina in una cornice superiore a quella in cui si trova l'hyperlink.
_top cancella tutte le cornici, e scarica in una finestra intera del browser.
Link di immagine
Se vuoi che un'immagine funzioni come un link, il metodo è lo stesso che si usa per i testi.
Devi soltanto sistemare i tag <a href> e </a> su ogni lato dell'immagine.
Qui sotto vedrai il codice HTML usato per far sì che un'immagine si comporti come un link per una pagina chiamata myfile.htm: <a href="myfile.htm"><img src="rainbow.gif"></a>
Se non hai inserito un'attributo border ("bordo") vedrai un piccolo bordo intorno all'immagine dopo che è stata trasformata in link. Per eliminare questo bordo, aggiungi semplicemente border="0" al tag <img>:
<a href="myfile.htm"><img src="rainbow.gif" border="0"></a>
Link all’interno di una pagina
Creare dei link per le ancore ("anchors") è molto simile a creare link nomali. Normalmente i link puntano sull'inizio di una pagina. Le ancore puntano invece su una zona all'interno di una pagina. Il simbolo # davanti alla locazione di un link specifica che il link punta sull'ancora di una pagina. (Per ancora si intende un luogo specifico al centro della pagina).
Per fare un link ad un'ancora devi:
- Creare un link che punti sull'ancora
- Creare l'ancora vera e propria.
L'ancora viene creata usando il tag <a>. Se vuoi creare un'ancora chiamata capitolo4, devi soltanto inserire questa riga nel punto in cui vuoi mettere l'ancora: <a name="capitolo4"></a>
Dopo aver fatto questo, puoi creare un link puntato sull'ancora usando normalmente il tag <a href>, in questa maniera: Clicca <a href="#capitolo4">qui</a> per leggere il capitolo 4.
Quando crei un link per un'ancora sulla stessa pagina, inserisci semplicemente:<a href="#YourAnchor">……….</a>
Quando crei un link per ancore di pagine esterne, usa questa sintassi:<a href="http://www.yahoo.com#YahoosAnchor">……….</a>
Le ancore sono usate in genere quando si hanno pagine con una mole considerevole di testo. Il modo tipico di procedere è creare in cima alla pagina un indice funzionante come link per le ancore che sono state sistemate in determinati punti nel testo che segue.
Le Immagini
Uno dei maggiori problemi circa l'uso delle immagini nei siti web consiste nel fatto che scaricare le immagini richiede molto più tempo rispetto al testo. Per ridurre il più possibile il tempo necessario a scaricare, vengono usati dei formati di compressione di immagini. I due più usati sul web sono:
GIF |
JPG |
256 colori |
Colori illimitati |
Può gestire aree trasparenti |
Non può gestire aree trasparenti |
Questo formato non va bene per comprimere fotografie |
Eccellente nella compressione di fotografie e immagini complesse |
In generale, è eccellente per titoli, bottoni e clipart |
In generale, non è adatto per titoli, bottoni e clipart. |
Titoli, bottoni, divisori, clipart e altre semplici immagini funzionano meglio in GIF.
Fotografie e immagini complesse normalmente funzionano meglio in JPG.
Se vuoi usare un'immagine che è in formato diverso da JPG o GIF, devi scaricare l'immagine in un programma di grafica e salvarla sia come JPG che come GIF.
Il tag usato per inserire un'immagine si chiama img.
Es: <img src="nomeimmagine.gif">
RIDIMENSIONAMENTO
Puoi cambiare le dimensioni di un'immagine usando gli attributi width e height (larghezza e altezza). In generale, non è consigliabile ridurre le dimensioni delle immagini usando questi comandi, in quanto l'immagine viene trasferita in internet nella sua misura originale, indipendentemente dalla riduzione che si è operata su di essa. Questo rallenterebbe lo scaricamento della tua pagina web. Questo significa che se hai un'immagine più grande di quanto la vorresti, per inserirla in dimensioni ridotte sulla tua pagina, dovrai ridurla in un programma di grafica, invece di ridurne semplicemente le dimensioni sulla pagina usando gli attributi width e height. Al contrario, a volte, può essere vantaggioso ingrandire le immagini usando questa tecnica.
esempio: <img src="nomeimmagine.gif" width="60" height="60">
Se non vengono specificate le opzioni di larghezza e altezza, il browser automaticamente userà le dimensioni reali dell'immagine. Comunque, dovresti sempre specificare le opzioni di larghezza e altezza, anche quando usi un'immagine nelle sue dimensioni reali! Il motivo è che se queste opzioni vengono tralasciate, il browser non può costruire la pagina finché l'immagine non è completamente scaricata. Questo vuol dire che il visitatore non può leggere il testo intorno all'immagine mentre l'immagine stessa viene scaricata - e questo dà come risultato l'impressione di una pagina "lenta".
BORDO INTORNO
Puoi aggiungere un bordo all'immagine usando l'opzione border come puoi vedere nell'esempio qui sotto:
Esempio: <img src="nomeimmagine.gif" border="4">
TESTO ALTERNATIVO
Puoi aggiungere un testo alternativo a un'immagine usando l'opzione
alt, come puoi vedere qui sotto:
esempio <img src="nomeimmagine.gif" alt=" testo alternativo ">
Bisognerebbe sempre aggiungere testi alternativi alle immagini, in modo che gli utenti possano farsi un'idea dell'immagine prima che questa venga scaricata. Questo è particolarmente importante se l'immagine è un link.
SPAZIO INTORNO
Puoi facilmente aggiungere spazio sopra e sotto le tue immagini con l'attributo
Vspace. In modo simile puoi aggiungere spazio a destra e a sinistra usando l'attributo Hspace.
Ecco un esempio: <img src="nomeimmagine.gif" Hspace="30" Vspace="10">
Queste opzioni ti permettono di aggiungere spazio intorno alla tua immagine. Purtroppo ti obbligano ad aggiungere la stessa quantità di spazio a ogni lato dell'immagine (sopra e sotto - o destra e sinistra). Il modo per aggirare il problema, se si vuole aggiungere spazio solo ad un lato dell'immagine, è di usare un'immagine gif trasparente di 1x1 pixel. Se, per esempio, vuoi uno spazio di 10 pixel sul lato destro dell'immagine, puoi usare l'immagine trasparente (pixel.gif) in questo modo:
<img src="pixel.gif" width="10" height="1"><img src="rainbow.gif">
L'immagine gif trasparente di 1x1 pixel viene semplicemente "tirata" fino a raggiungere la dimensione desiderata. Il "trucchetto" dell' 1x1 pixel è probabilmente uno degli stratagemmi più usati sull'intera rete per risolvere problemi. I motivi sono ovvi: funziona su tutti i browsers e assicura una assoluta precisione di pixel nel progetto!
ALLINAEAMENTO
Si possono allineare le immagini in conformità con il testo che le circonda, usando i seguenti allineamenti: align=”………….”
default allinea l'immagine usando gli attributi di default del Web browser. E' come baseline.
left allinea l'immagine al margine sinistro e avvolge il testo che segue l'immagine.
right allinea l'immagine al margine destro e avvolge il testo che precede l'immagine.
top allinea la parte superiore dell'immagine con il testo intorno.
texttop allinea la parte superiore dell'immagine con la parte superiore del testo situato più in alto sulla linea.
middle allinea la parte mediana dell'immagine con il testo intorno.
absmiddle alinea l'immagine con il centro della linea corrente.
baseline allinea l'immagine con il baseline della linea corrente.
bottom allinea la parte inferiore dell'immagine con il testo intorno.
absbottom allinea l'immagine con la parte inferiore della linea corrente.
center allinea il centro dell'immagine con il testo intorno.
Esempio: <img src="rainbow.gif" align="texttop">
Per finire 10 consigli per un sito perfetto:
- Dai sempre un nome in lettere minuscole e non superiore agli 8 caratteri ai file delle tue pagine. Per esempio: non "PAGINA.html" ma "pagina.html".
- Se possibile non inserire nella pagina immagini e foto superiori a 300 Kb.
- Le dimensioni del testo non devono essere né troppo piccole né troppo grandi. Meglio una dimensione media, che permetta di leggere senza problemi.
- Il colore del testo della pagina non deve essere simile a quello di sfondo, altrimenti il testo si leggerà con difficoltà.
- Ricorda che il tuo sito sarà visto su molti computer diversi dal tuo e che sicuramente alcuni non lo vedranno come lo vedi tu.
- Non utilizzare tipi di font troppo particolari, perché rischi che altri, che non li hanno nel loro computer, non riescano a vederli.
- Utilizza GIF animate per abbellire il tuo sito, ma non metterne troppe.
- Osserva e prendi spunto dai siti già esistenti. E' così che si diventa capaci di fare siti sempre più belli.
- È facendo pagine web che si diventa bravi a fare pagine web! Non preoccuparti se i tuoi primi lavori non saranno strabilianti... prima o poi lo saranno!
- La tua pagina web deve piacere prima di tutto a te, ma riesce a migliorare chi fa tesoro dei consigli, degli apprezzamenti e delle critiche altrui!
Buon Lavoro…
Scuola Secondaria di Primo Grado
“Enrico Fermi”
Pizzighettone
Fonte: http://www.pizzighettonescuola.it/mat_did/informatica_html_01.doc
Autore del testo: non indicato nel documento di origine
Guida html
Visita la nostra pagina principale
Guida html
Termini d' uso e privacy