Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

Editor testuali

informatica



Creare un sito Internet non è difficile, ne' può essere messo a confronto con veri e propri sistemi di programmazione. Su quest'ultimo punto, in particolare, è bene fin d'ora sottolineare come HTML non sia un linguaggio di programmazione ma un semplice sistema di contrassegno, i cui tag vengono riconosciuti ed interpretati dai browser Web (Netscape, MsIe, Opera ecc). Questa peculiarità rende HTML un sistema facile da comprendere perchè non presuppone alcuna conoscenza tecnica preesistente. Per questo motivo chiunque può avvicinarsi al Web Publishing senza prerequisiti di specializzazione e per questo in Internet esistono milioni di creatori di pagine Web.

Il mercato è gravido di decine di software specializzati nella creazione di pagine HTML: i cosiddetti editor HTML. La complessità di questi programmi ha raggiunto livelli molto alti ma ha seguito strade diverse. In buona sostanza il mercato propone due tipi di editor HTML:

Editor testuali
Si tratta di programmi che propongono modifiche dirette sul codice HTML puro con possibilità di preview del risultato. Per facilitare la scrittura del codice mettono a disposizione comandi preconfezionati attivabili con semplici click. L'utilità maggiore di questi strumenti è la padronanza del codice HTML puro che riescono a comunicare agli utilizzatori. Il difetto maggiore è nell'apprendimento più difficile rispetto agli editor WYSIWYG.

Editor WYSIWYG
L'acronimo sopraindicato sta per: What You See Is What You Get, ed italianizzando significa che ciò che si vede sullo schermo è ciò che si ottiene in un browser Web. In altre parole questi editor non visualizzano il codice HTML ma esclusivamente gli oggetti, le immagini ed il testo. In questo modo lo sviluppatore non si trova a lavorare su codice HTML ma sulla pagina così come verrà visualizzata dal browser: spostando oggetti con il semplice trascinamento del mouse, sfruttando layout predefiniti ecc.
Il vantaggio di questo tipo di editor è evidente: lo sforzo di comprensione delle specifiche HTML è ridotto al minimo e il tempo di apprendimento è brevissimo.
Secondo chi scrive, però, questo tipo di editor (un esempio concreto è Front Page) non dà la possibilità di comprendere l'HTML e personalizzarne l'uso. Si corre, infatti, il rischio di creare siti fotocopia con un layout identico agli altri e, in presenza di errori che l'editor non riesce a risolvere, di non riuscire ad andare oltre ciò che il programma prevede.

A prescindere da pareri soggettivi su programmi per l'HTML, la presente guida è concepita per far comprendere i rudimenti dell'HTML puro. Continuando questo corso non ti troverai di fronte un tutorial sui comandi degli editor più diffusi, ma davanti codice HTML puro ed universale. Solo in questo modo potrai comprendere le peculiarità dell'HTML e degli altri linguaggi che ne supportano e ampliano l'utilizzo.

Abbandona per tutto il corso di questo tutorial il tuo editor e concentrati sulle nozioni di codice che la guida ti presenta volta per volta. Comprese le basi dell'HTML potrai scegliere se usare editor WYSIWYG o editor testuali, in entrambi i casi avrai consapevolezza dei limiti e delle potenzialità del sistema, potendo usare meglio tutti gli strumenti che il mercato mette a tua disposizione.

Alcuni consigli per comprendere pienamente questa guida:



i siti Web, prima della pubblicazione, vanno creati in locali, cioè sul tuo hard disk. Solo successivamente vengono spediti attraverso programmi appositi.

Per i nomi dei file e per le estensioni degli stessi usa caratteri sempre in minuscolo.

Ricorda che la modifica del tuo sito Web avviene tramite programmi FTP (File Trasfer Protocol) mediante password e UserId. Quindi nessun altro, oltre te, può modificare le pagine.

Per scrivere codice HTM 737d32h L puoi utilizzare qualsiasi editor HTML testuale (HomeSite, HotDog, DreamWeaver ecc.), ma anche solo Blocco Notes di Win95.

Prima di continuare è importante sottolineare una caratteristica dei tag HTML. Come più volte accennato, HTML è un sistema di contrassegno che produce i suoi effetti su testo e immagini. Perchè tali effetti si producano è necessario che elementi specifici (standardizzati in HTML) vengano assegnati ai vari elementi testuali o d'immagine della pagina. Il termine marcatura deriva proprio da questa caratteristica. Per una migliore comprensione di questo fondamentale concetto di HTML prendiamo in considerazione il testo seguente:

HTML è un sistema di contrassegno indipendente dalla piattaforma.

Come vedi si tratta di un normalissimo testo per il quale non abbiamo specificato alcun tag HTML. In linea con i concetti che reggono il sistema di markup, senza altre indicazioni, il browser formatta il testo come quello che lo precede (infatti si tratta di un font arial di dimensioni e colore identici a questo stesso testo).
Consideriamo, ora, l'ipotesi di voler dare un colore rosso al testo di esempio. Per fare questo marchiamo il testo con lo specifico tag HTML che determina il colore del testo:

<font color="red">HTML è un sistema di contrassegno indipendente dalla piattaforma.</font>

In seguito vedremo il funzionamento del tag FONT. Quello che interessa sottolineare in questa sede è l'uso generale dei marcatori HTML: come si nota agevolmente dall'esempio, il tag <font color="red"> è posto immediatamente prima e dopo la frase da formattare in rosso. L'unica differenza è che il tag prima della frase è <font color="red">, mentre quello che chiude è </font>. La barra posta in verticale verso destra indica al browser che il tag <font> precedentemente aperto, in questo caso va chiuso. Abbiamo così dato vita ad un piccola marcatura, comunque sintomatica del funzionamento del sistema HTML.

I tag HTML sono case insensitive, cioè assolutamente indipendenti dal maiuscolo e minuscolo. Per intenderci, il seguente codice:

<font color="red"></font>

ha gli stessi effetti del codice:

<FONT COLOR="RED"></font>

In HTML esistono TAG che non hanno bisogno di chiusura, perchè la loro funziona non è quella di marcare un elemento, ma di fornire informazioni di diverso tipo. Volta per volta indicheremo quali elementi hanno bisogno di chiusura e quali funzionano correttamente anche se ne sono privi.

Buona fortuna.


Per essere visualizzati su Internet, i documenti vengono salvati in formato testo e contengono i tag necessari ad informare il browser (Netscape, MsIe o Explorer) sulla visualizzazione della stessa. In altri termini un documento contenente testo, salvato in formato .htm senza alcun tag HTML viene comunque visualizzato dal browser, ma privo di qualsiasi formattazione: senza ritorni a capo, paragrafi, testo centrato, grassetto, corsivo ecc.
Lo scopo dell'HTML è quello di fornire, attraverso comandi chiamati TAG , una formattazione al documento, oltre all'inserimento di immagini ed altri elementi multimediali (filmati, applet ecc.). Il lavoro che uno sviluppatore Web produce all'interno di un documento HTML è indirizzato a fornire tutte le informazioni necessarie al browser per interpretare correttamente la pagina.

Un documento HTML si divide in due parti fondamentali: l'intestazione e il corpo del documento.

E' facile comprendere che il corpo del documento contiene tutti gli elementi della pagina: il testo, le immagini, le applet Java, il codice Javascript e quant'altro viene materialmente visualizzato dal browser.

Al contrario, l'intestazione contiene una serie di informazioni necessarie al browser per una corretta interpretazione del documento, ma non visualizzate all'interno dello stesso. L'intestazione, quindi, ha un ruolo non apparente ma sicuramente fondamentale. Solo per citare alcuni elementi forniti dall'intestazione: il titolo della pagina, i termini chiave per i motori di ricerca, il tipo di HTML supportato ed i link base di riferimento.
In questa sede analizzeremo solo alcuni elementi, omettendo per il momento lo studio degli altri non immediatamente necessari alla comprensione di HTML:

  • HTML
  • DOCTYPE
  • HEAD
  • TITLE
  • META

In seguito dettaglieremo per ognuno di questi elementi le peculiarità salienti.

<HTML>


Tutti gli elementi ed il contenuto di un documento HTML sono compresi all'interno dei marcatori <HTML></HTML> che, in altre parole, hanno il compito di aprire e chiudere il file. I tag <HTML></HTML> indicano al browser che il documento è marcato in HTML, anche se i browser più recenti (Netscape 3 e 4, MsIe 3,4 e 5) riescono ugualmente ad interpretare i tag successivi. Detto questo esistono comunque due ragioni per inserire sempre il tag <HTML></HTML> all'interno del documento:

HTML non è l'unico linguaggio di contrassegno presente sul WWW (si pensi solo a XML) e il browser rischia di malinterpretare i tag, confondendoli con altri linguaggi di markup

Gli utenti che usano vecchi browser rischiamo di visualizzare un documento pessimamente formattato.

DOCTYPE


Seguendo le indicazioni del W3C (consorzio internazionale che si occupa di armonizzare l'utilizzo dell'HTML) Doctype deve essere il primo elemento ad aprire il documento. Questo vuol dire che andrebbe posto prima di <HTML>.
Si tratta di un tag che non ha bisogno di chiusura e che ha il compito di fornire informazioni al server Web che ospita la pagina. Le informazioni fornite da DOCTYPE riguardano il tipo di documento visualizzato oltre ad essere necessaria alla comunicazione tra browser e server. DOCTYPE deve essere scritto in una forma standard:

<!DOCTYPE HTML PUBLIC ="-//IETF//DTD HTML 4.0//EN">

Questa riga fornisce alcune informazioni sul documento:

HTML PUBLIC: il documento è pubblico

IETF: il tipo di HTML pubblico è gestito dalla Internet Engineering Task Force

DTD HTML 4.0: la versione di HTML supportata è la 4.0

EN: la lingua del documento è l'inglese

L'uso di DOCTYPE non è obbligatorio e può essere omesso. Certamente un suo utilizzo aiuta il server Web ad interpretare correttamente il documento, ma la sua assenza non è condizionamente ai fini della corretta visualizzazione.

Come si nota agevolmente DOCTYPE è un tag che non prevede un elemento di chiusura (non va scritto in questo modo: <!DOCTYPE HTML PUBLIC ="-//IETF//DTD HTML 4.0//EN"></DOCTYPE>)

<HEAD>


Gli elementi <HEAD></HEAD> sono posti immediatamente dopo l'apertura del tag <HTML> e racchiudono l'intestazione vera e propria del documento; cioè tutte le informazioni necessarie al browser, al Webserver ed ai motori di ricerca. Si tratta del primo elemento letto dal browser e per questo è il luogo migliore per inserire sintassi script . All'intero di <HEAD></HEAD> va inserito il titolo del documento e altre informazioni. Ecco la sintassi HTML di un documento con i comandi finora esaminati:

<!DOCTYPE HTML PUBLIC ="-//IETF//DTD HTML 4.0//EN">
<HTML>

<HEAD></HEAD>

</HTML>

<TITLE>


L'elemento <TITLE></TITLE> è il più utilizzato all'interno del tag <HEAD>, in quanto fornisce il titolo alla pagina. Il titolo viene solitamente visualizzato dai browser nell'intestazione di pagina. Quella che segue è l'immagine del TITLE di HTML.it (il testo è: HTML.it - il sito italiano sul Web publishing):



In caso di salvataggio dell'URL con "Aggiungi a preferiti" (per MsIe) e "Aggiungi Segnalibro" (per Netscape) il tag TITLE dà il nome al collegamento. In altre parole, quando si salva l'indirizzo, il browser assegna allo stesso quanto presente all'interno di <TITLE></TITLE>. L'immagine che segue mostra l'effetto in MsIe (del tutto simile per Netscape):



Il contenuto riportato tra i tag <TITLE></TITLE> è anche utilizzato da alcuni motori di ricerca per indicizzare la pagina e trovare parole chiave. Altavista è probabilmente l'esempio più eclatante. Per questo è bene fornire nel TITLE una descrizione dettagliata ma sintetica della pagina, con tutte le parole chiave che i motori possono indicizzare.
Un consiglio da tenere a mente è comunque quello di non esagerare con la lunghezza del testo, ma di contemperare le esigenze di chi aggiunge il sito al bookmark e dei motori di ricerca.

La corretta sintassi per il tag TITLE è la seguente:

<TITLE>La mia prima home page con la guida di HTML.it</TITLE>

META


I motori di ricerca rappresentano una risorsa indispensabile per chi cerca informazioni sulla rete, e siti quali Altavista, Yahoo, Lycos e Excite sono tra i piu' visitati su internet.
Figurare all'interno di tali motori di ricerca è fondamentale per chi crea pagine web e vuole maggior visibilità. E' necessario innanzitutto segnalare le proprie pagine a questi motori di ricerca, e ciò viene fatto attraverso piccoli form presenti sulle pagine web sotto la scritta "Add your site". Periodicamente questi "spider" monitoreranno le milioni di pagine contenute nei loro database verificando le eventuali modifiche.

Oltre che essere inseriti nei motori di ricerca e' importante figurare tra i primi siti che vengono visualizzati nella ricerca (spesso, soprattutto quando i termini da ricercare sono di largo uso e di carattere generale, vengono presentate delle liste con migliaia di siti), e per fare questo è possibile adottare qualche semplice accorgimento.
Fondamentale a questo scopo risultano i META tag, stringhe di codice che figurano in testa al documento, tra i comandi <HEAD></HEAD> e che vengono, per prime, lette dai motori di ricerca.
Le "keywords" (parole chiave) sono i termini che, sinteticamente, descrivono il contenuto di una pagina web. Se, ad esempio, il sito si occupa della realizzazione di pagine Web, le keywords saranno:

HTML
realizzazione pagine Web
home page
motori di ricerca
prezzi modici
.......

Il META tag dovrà essere così impostato:

<META name="keywords" Content="HTML, realizzazione pagine Web, home page, motori di ricerca, prezzi modici">

La virgola divide i termini gli uni dagli altri. Le frasi non limitate a singoli vocabili vanno scritte senza virgola perchè il motore di ricerca le trovi in quella stessa forma.

Naturalmente, se il vostro sito e' multilingue sara' bene inserire keywords in italiano e nella lingua straniera presente nel sito, facendo sempre molta attenzione a non usare termini troppo generici. Nel caso in cui non si tratti di nomi propri e' buona regola inserire la forma singolare e plurale.
Il motore di ricerca considera il numero di volte in cui un termine e' presente all'interno della pagina e delle keywords, ma ripetere esageratamente una stessa parola nel META tag ha l'effetto opposto a quello voluto, in quanto la gran parte degli spider cancellano dal proprio database questi siti. E' bene quindi non esagerare col numero di termini all'interno delle keywords.

Altri META tag riguardano l'autore della pagina web:

<META name="author" content="Nome Cognome">

il titolo che apparira' alla fine della ricerca:

<META name="description" content="La mia prima home page con la guida di HTML.it">

e il nome dell'editor con cui il documento HTML e' stato generato:

<meta name="GENERATOR" content="Blocco note di Win95">

Se per qualche ragione desideri che una delle tue pagine NON sia indicizzata nei motori di ricerca, devi inserire il seguente META tag:

<META NAME="ROBOTS" CONTENT="NOINDEX">

Un altro META Tag e' quello che permette il "refresh" della pagina. Cio' vuol dire che la stessa pagina o altra differente può essere automaticamente lanciata dopo un certo numero di secondi che noi stessi impostiamo.
Ecco il codice:

<META HTTP-EQUIV="Refresh" CONTENT="5; url=pippo.htm">

Dove CONTENT="5 e' il numero di secondi entro il quale la nuova pagina sara' caricata; mentre url=pippo.htm" e' il file che verra' caricato.

RIEPILOGO LEZIONE


Di seguito riportiamo una pagina HTML impostata con il codice visto in questa lezione. Questa pagina costituirà un punto di riferimento anche per le lezioni successive:

<!DOCTYPE HTML PUBLIC ="-//IETF//DTD HTML 4.0//EN">
<HTML>

<HEAD>

<META name="keywords" Content="HTML, realizzazione pagine Web, home page, motori di ricerca, prezzi modici">
<META name="description" content="La mia prima home page con la guida di HTML.it">
<meta name="GENERATOR" content="Blocco note di Win95">
<META name="author" content="Nome Cognome">

<TITLE>La mia prima home page con la guida di HTML.it</TITLE>

</HEAD>

</HTML>

Clicca qui per visualizzare il documento creato con questo codice.


Lo studio dei dati forniti dai più frequentati Search Engine ha dimostrato come il termine più ricercato sia "sex", e come l'80% degli utenti non consulta oltre la seconda pagina di ogni ricerca effettuata. Ciò significa che se una ricerca per parola chiave risponde con 30 pagine di indirizzi Web, soltanto 2 utenti su 10 consulteranno oltre la seconda pagina. In ultima analisi, i siti contenuti nella trentesima pagina hanno una visibilità nulla. Questa considerazione dovrebbe chiarire la vitale importanza di risultare tra i primi posti in queste ricerche. E' dimostrato che i Search Engine e le directory sono i mezzi che più di altri (riviste, link su altri siti, televisione ecc.) portano accessi e visitatori in un sito.
Alla luce di queste considerazioni, l'inserimento di un sito all'interno di Search Engine o Directory è un'operazione fondamentale per la riuscita del sito stesso. Accorgimenti e piccoli trucchi possono aiutare in questo, ma non c'è un modo univoco per risultare in testa ad ogni motore di ricerca, per la banale constatazione che ogni motore ha peculiarità proprie. Prima di continuare è utile precisare alcuni concetti:

non è importante risultare in tutti i motori di ricerca ma al massimo nei 10 più diffusi a livello mondiale e nei 2 a livello nazionale;

diffidare dei numerosi servizi che per pochi dollari promettono l'inserimento in 500 motori di ricerca, perchè spesso non danno risultati e perchè, appunto, non ha alcuna rilevanza risultare nei motori minori;

diffidare dai programmi automatici di inserimento;

non sperare che le "keywords" dei Meta Tag siano la soluzione unica a questi problemi;

spesso l'inserimento non è immediato, e in alcuni casi (Lycos e HotBot) è successo addirittura che il database non venisse aggiornato per mesi.

Il numero di persone che negli USA si occupano esclusivamente di inserimento siti nei motori di ricerca è stimato intorno alle 100 unità. Ciò significa che nessuna Directory può materialmente controllare tutti i nuovi siti inseriti, per cui molti vengono indicizzati senza essere previamente verificati. Questo stato di cose genera una certa confusione, oltre ad uno scadimento qualitativo degli inserimenti. Infoseek ha reso noto che giornalmente riceve 30.000 nuove richieste di inserimento, poco meno della metà di Yahoo.com.

L'inserimento nelle Directory è, per loro stessa natura, più umanizzato e difficilmente oggetto di trucchi più o meno leciti. Anzi, tentare di risultare furbescamente ai primi posti delle Directory può essere controproducente, visto che gli operatori, resisi conto del trucco, inseriscono il sito nel "limbo dei furbi" in posizione quasi invisibile. Diverso, invece, il caso dei Search Engine dove non è un essere umano a ricevere le richieste di inserimento ma uno spider. Nel corso degli anni gli spider, non troppo perspicaci agli esordi, hanno affinato i propri strumenti e in molti casi radicalizzato l'intolleranza verso trucchi e trucchetti. Spesso è sufficiente una keyword ripetuta due volte per causare la cancellazione, tout court, del sito dal database. Prima di tutto, quindi, è buona regola evitare le penalizzazioni. Trucchi che fino ad una anno fa permettevano di risultare primi nei Search Engine oggi sono riconosciuti dagli spider. Per esempio non è una buona idea inserire testo nascosto nella pagina HTML di colore identico al background, come non è una buona idea creare pagine con parole chiave che non hanno nulla a che vedere col contenuto del sito, ma inserite solo perchè spesso ricercate dagli utenti (per es il termine "sex" in un sito che si occupa di informatica). Evitare in modo assoluto di inserire pagine con un meta tag "refresh" che rimanda ad un'altra pagina dopo un certo numero di secondi.
Premesso che il delitto non paga, ecco una serie di suggerimenti per ottenere un buon posizionamento nei Search Engine:

evitare, per quanto possibile, l'uso di frame HTML;

non iniziare il documento HTML con un'immagine o una tabella;

porre particolare attenzione alla home page del sito;

evitare, per quanto possibile, l'uso di pagine ASP (Active Server Pages) o nominate con un nome di file dove compare un punto interrogativo "?";

inserire le parole chiave del sito tra i tag <TITLE></TITLE>, perchè molti spider (Altavista in primis) danno molta importanza a questo;

usare i tag <H1><H2> ecc.

creare "doorpage", cioè delle pagine di supporto a quelle principali, contenenti testo e keywords attinenti al sito;

registrare non più di una pagina al giorno;

registrare domini di primo livello. Per esempio www.nome.com piuttosto che www.nome.com/direcotry;

il meta tag "keywords" non deve contenere termini duplicati e non più di mille caratteri. Il 90% delle ricerche avviene per termini scritti in minuscolo, per cui è preferibile evitare quelli maiuscoli;

il meta tag "description" è fondamentale perchè a questo il Search Engine associa il link al sito e non deve superare i 300 caratteri.


Nella precedente lezione abbiamo visto come creare da zero un documento HTML e come impostare il titolo ed i meta tag.
L'operazione successiva all'impostazione del documento è la definizione del colore o dell'immagine di sfondo, oltre ai colori dei link attivi e visitati.

<BODY>


L'elemento <BODY> è posto in posizione immediatamente successiva alla chiusura del tag </HEAD> e comunque all'interno degli elementi <HTML></HTML>; ha un tag di apertura e uno di chiusura, ed all'interno di esso si sviluppa il corpo del documento.
Se l'elemento <HEAD> conteneva metadati (cioè non materialmente visualizzati dal browser) la funzione del tag <BODY> è quella di mostrare gli oggetti (testo, immagini, suoni, applet ecc) della pagina.

La sintassi corretta per l'elemento <BODY> è la seguente:

<BODY>
Contenuto del documento
</BODY>


Il tag <BODY> è utilizzato, oltre che per fornire al browser indicazioni sulla posizione degli oggetti nel documento, anche per impostare vari attributi di visualizzazione per il documento. Di seguito vediamo quali.

BGCOLOR


L'attributo BGCOLOR imposta un colore unitario di sfondo. La sintassi corretta è la seguente:

<BODY BGCOLOR="red">

E' possibile sostituire al nome in inglese, valori esadecimali. Per esempio, il colore rosso (red) si sostituisce in questo modo:

<BODY BGCOLOR="#ff0000">

L'utilità dei colori esadecimali si ha laddove non si vuole un colore standard ma sfumato o con diversa tonalità. I più diffusi editor HTML prevedono palette per la definizione di colori esadecimali, mentre Paint Shop Pro fornisce, oltre al colore, anche il corrispondente valore esadecimale da copiare/incollare.

Clicca qui l'esempio pratico


BACKGROUND


BACKGROUND ha una funzione simile a BGCOLOR, ma mentre il secondo mostra un tinta unica del colore, il primo visualizza sullo sfondo un'immagine in formato grafico .gif o .jpg.
Consideriamo, per esempio, di voler costruire uno sfondo con l'immagine seguente:



L'immagine si chiama
sfondo.gif ed è depositata nella stessa directory del documento. La sintassi corretta per impostare l'immagine come sfondo è:

<BODY BACKGROUND="sfondo.gif">

Il browser visualizza l'immagine sfondo.gif e la ripete su ogni punto dello schermo disponibile. In altre parole non si limita a visualizzare l'immagine una sola volta, magari al centro della pagina, ma riempie ogni spazio disponibile.
Per questa ragione è assolutamente necessario creare uno sfondo che, se ripetuto, non presenti soluzione di continuità, ma un aspetto il più possibile uniforme.

E' bene scegliere un'immagine di sfondo che non infastidisca la lettura e che sia il più possibile coerente con il colore del testo. Per esempio, inserire un testo arancione su uno sfondo rosso non renderebbe leggibile il testo. Sempre meglio usare il colore nero per il testo e tinte leggere per lo sfondo.

Clicca qui l'esempio pratico


TEXT


Se non stabilito diversamente il colore del testo del documento è nero, in quando i browser assegnano quel colore di default. Grazie all'attributo TEXT è possibile assegnare al testo un colore diverso dal nero. Questa la giusta sintassi:

<BODY BACKGROUND="sfondo.gif" TEXT="red">

Anche in questo caso i colori possono esprimersi in nomi o valori esadecimali. All'interno del documento è possibile marcare parte del testo in colori differenti da quello impostato su TEXT.

Clicca qui l'esempio pratico


LINK


Se non stabilito diversamente il colore dei link (non ancora visitati) è blue. Grazie all'attributo LINK è possibile definire colori differenti:

<BODY BACKGROUND="sfondo.gif" LINK="red">

Tutti i link della pagina non saranno più blue ma rossi (red). Tale colore può essere espresso in valori esadecimali.

Clicca qui l'esempio pratico


ALINK


Quando cliccati i link assumono un colore diverso da quello impostato su LINK (o dal blue di default). Grazie a ALINK (la A sta per Active) è possibile modificare questo colore:

<BODY BACKGROUND="sfondo.gif" ALINK="yellow">

VLINK


Quando un URL associato ad un link viene visitato, quest'ultimo assume un colore diverso da quello di LINK (o dal blue di default). Grazie a VLINK (la V sta per Visited) è possibile agire su questo colore:

<BODY BACKGROUND="sfondo.gif" VLINK="green">

Clicca qui l'esempio pratico


BGPROPERTIES


Trattando dell'attributo BACKGROUND abbiamo sottolineato come le immagini richiamate siano disposte sullo schermo disponibile. Se, comunque, la pagina è tanto lunga da attivare lo scroller laterale, lo sfondo (e l'immagine associata) scorre insieme alla pagina. Per comprendere meglio di cosa stiamo parlando clicca qui per un esempio, e poi scrolla la pagina verso il basso.

Grazie alla proprietà BGPROPERTIES è possibile rendere lo sfondo immobile rispetto allo scroller di pagina. Questa la sintassi corretta:

<BODY BACKGROUND="sfondo.gif" BGPROPERTIES="fixed">

Questo espediente
funziona solo con MsIe e non con Netscape che invece continua a scrollare la pagina.

Clicca qui l'esempio pratico


La presenza di file audio sotto forma di MIDI o WAV puo' essere una piacevole colonna sonora alla navigazione delle pagine web, oppure un fastidioso fardello capace solo di rallentare il caricamento ed innervosire il visitatore. Come spesso viene ripetuto in questa guida e' necessario considerare che si', e' importante la piacevolezza grafica e musicale delle pagine web, ma e' fondamentale che la navigazione non risulti lenta e, in ultima analisi, impossibile per chi abbia a cuore le sorti della propria bolletta telefonica. Il mio consiglio e' quindi di evitare grossi file MIDI (60Kb di files MIDI ad esempio sono esagerati) ed enormi WAVE (che possono essere sostituiti da altri files piu' leggeri, come vedremo in seguito).

Consideriamo un file MIDI; consideriamo che si chiami "imagine.mid"; e consideriamo che si voglia inserirlo come sottofondo ad pagina web non appena questa si apra, automaticamente quindi.
Dobbiamo innanzitutto considerare che Navigator e MSIE si servono di comandi diversi per richiamare automaticamente un file MIDI di sottofondo.

Per esempio il comando <BGSOUND> funziona solo con MSIE ma non con Navigator (LOOP indica il numero delle volte che il midi deve essere ripetuto):

<BGSOUND SRC="imagine.mid" LOOP=INFINITE>

Clicca qui sia con MSIE che Navigator per provare.

Oltre ai files MIDI, con il comando <BGSOUND> e' possibile inserire files .WAV e .AU

Per rendere possibile l'apertura automatica di un files audio anche con Netscape, si deve usare il comando <EMBED>:

<EMBED SRC="imagine.mid" AUTOSTART=true LOOP=true VOLUME="80" WIDTH="0" HEIGHT="0">

Clicca qui sia con MSIE che Navigator per provare.

Anche in questo comando oltre ai MIDI e' possibile inserire files .WAV e .AU

Una delle remore all'inserimento di files midi all'interno delle proprie pagine, e' dovuta al fatto che, ogni volta che si cambia pagina il file musicale si interrompa bruscamente. Il problema non persiste nei siti divisi in frame, in quanto il file musicale viene caricato nel frame fisso e quindi non muta al cambiamento delle pagine negli altri frame. E per i siti senza frame? Un piccolo espediente puo' essere quello mediante il quale, proprio prendendo spunto dai frames, si costruisce una pagina con un frame "invisibile".
Per fare questo si crea una pagina con il seguente codice:

<FRAMESET rows="0,*" border=0 frameborder="0" framespacing="0">

<frame me name="alto" src="top.htm" noresize>
<frame me name="centrale" src="central.htm" noresize>

</FRAMESET>

Dove nel frame "alto" inseriremo il codice che richiama il file audio:

<EMBED SRC="imagine.mid" AUTOSTART=true LOOP=true VOLUME="80" WIDTH="0" HEIGHT="0">

E nel frame "centrale" il contenuto delle pagine.

Clicca qui per una prova.


Altro "stratagemma" per far ascoltare un file audio (SOLO CON NETSCAPE) in modo continuativo anche quando si cambia pagina, e' quello di caricare tale file in una finestra del browser alternativa.
Per fare questo e' necessario servirsi di un piccolo ma importantissimo TARGET.
I TARGET vengono usati soprattutto nei frame ma possono esserlo anche in altri casi. Se per esempio si desidera che una pagina collegata ad un link venga caricata in una finestra diversa del browser, si dovra' inserire il TARGET="_new".
Facciamo conto che il midi da ascoltare si chiami "imagine.mid"; ecco il codice:

<A HREF="imagine.mid" TARGET="_new">Ascolta il midi imagine.mid</A>

Cliccando si aprira' una finestra di default la quale si affianchera' a quella principale (da cui si e' lanciato il link).
Ecco, di seguito, l'esempio pratico:

Ascolta il midi imagine.mid

Questa procedura e' valida solo per Nestcape.
In questo modo il visitatore potra' leggere il testo presente sulla finestra da cui ha lanciato il file "imagine.mid" e nel frattempo l'altra finestra produrra' il midi. Nel momento in cui il visitatore clicchera' su un altro midi da ascoltare, automaticamente tale midi verra' caricato nella finestra precedente aperta per "imagine.mid" (non verranno aperte, cioe', decine di finestre).

Purtroppo questo espediebte funziona solo con Netscape e non con MSIE. Per venire incontro anche agli utenti del browser di Redmond e' necessario archittettare una procedura un po' piu' complessa, la quale consiste nell'associare al link non il semplice file midi "imagine.mid" ma un file HTML che contenga un comando EMBED che faccia automaticamente partire il midi.

Clicca qui per una prova

Questa procedura funziona per entrambi i browser.

Prima di approfondire le tematiche legate alla formattazione del testo è bene precisare alcuni concetti che reggono l'uso di questi strumenti.

Tag di testo logici e fisici


HTML è un sistema di contrassegno con il compito di definire la struttura e l'aspetto di un documento. Questa definizione che senza altri commenti passerebbe inosservata, va invece approfondita per capire meglio i concetti di tag fisici e logici.
Un tag fisico ha il compito di formattare visivamente un documento , cioè di renderlo grassetto, corsivo, sottolineato ecc. La funzione di questi tag non è quella di dare un aspetto al documento, ma di marcare determinati punti per definirne una struttura.

Un tag logico, al contrario ha la funzione di definire una struttura indipendentemente dal suo aspetto . Ovvero, indipendentemente dal modo in cui il browser interpreterà visivamente il contrassegno.

Per comprendere meglio questa differenza prendiamo in esame due elementi volti a formattare testo:

<ADDRESS></ADDRESS>

Si tratta di un tag logico che contrassegna l'informazione di indirizzo nel documento. In altre parole quando si è in presenza di un indirizzo e-mail, di un numero di telefono o di un indirizzo secondo le regole di HTML va inserito questo tag logico.

<I></I>

Si tratta di un tag fisico che rende corsivo (italic) il testo compreso nell'elemento. E' quindi, un tag volto a dare un aspetto al documento e non a marcare un elemento di struttura.

Vediamo insieme qual è il risultato visivo di un loro utilizzo all'interno di un documento Web:

webmaster@html.it


webmaster@html.it

Senza guardare il source del documento ti sfidiamo a capire quale testo sia stato formattato con ADDRESS e quale con I. Visivamente entrambi i tag (il primo è ADDRESS e il secondo I) danno un medesimo risultato (il testo corsivo), ma da un punto di vista di struttura del documento, solo il primo (ADDRESS) indica che al proprio interno è presente un indirizzo, mentre il secondo non da' alcuna informazione di questo tipo.

Tag FONT e nuovo standard HTML 4


HTML 4 è lo standard che da quasi due anni regge le sorti del linguaggio di markup più famoso al mondo. Senza entrare nel merito delle novità del nuovo standard vogliamo sottolineare come il W3C abbia "deprecato" l'uso del tag FONT nella formattazione del testo in HTML. Il termine "deprecare" (letteralmente tradotto dall'inglese) indica che i browser leggono ancora questo tag, ma il suo uso è decisamente vietato dal nuovo standard. Secondo HTML 4 la formattazione del testo è lasciata unicamente ai fogli di stile.

In questa lezione non terremo conto delle indicazioni del W3C e spiegheremo comunque l'uso dei tag classici di HTML 4. Rimandiamo comunque alla sezione sui Fogli di stile di questo sito per un approfondimento dell'argomento CSS.

Formattare titoli da <H1> ad <H6>


Il tag <Hn> (dove n è il numero da 1 a 6 che è possibile assegnare all'elemento) ha la funzione di fornire stili ai titoli di pagina, dando maggiore o minore enfasi a seconda del numero inserito. Come accennato i numeri vanno da 1 a 6, con maggior importanza dei numeri più bassi rispetto agli alti. Visivamente tale diversa importanza si traduce in differente grandezza del testo, come nell'esempio che segue:

Clicca qui l'esempio pratico



Oltre a definire gli stile dei titoli, il tag <Hn> inserisce spaziature di paragrafo rispetto agli elementi che seguono.

<FONT>


Il tag fisico FONT è uno dei più usati e frequenti nell'attuale Web publishing. Nella sezione: Impostare lo sfondo del documento (elemento BODY) abbiamo visto come l'attributo TEXT dia un colore univoco a tutto il testo del documento. Il tag FONT ha in parte una funzione simile, ma molto più ampia e concettualmente differente.

Il tag FONT ha la funzione di formattare tipo e grandezza del testo limitatamente ad alcuni punti del documento. In realtà se il tag font aprisse e chiudesse il documento, la totalità del testo compreso al suo interno sarebbe formattato di conseguenza. Ma concettualmente il tag FONT è stato pensato per definire parti limitate di testo. Mentre, poi, TEXT determina solo il colore del testo, il tag FONT può definire: tipo di font utilizzato, grandezza e colore.
Segue la sintassi corretta del tag:

<FONT FACE="arial" SIZE=5 COLOR=red>Carattere da formattare</FONT>

L'attributo FACE="arial" indica il tipo di carattere da richiamare per la visualizzazione. SIZE=5 la grandezza del carattere che può andare da 1 a 7 (con maggiore grandezza dei numeri vicini al 7); COLOR=red indica il colore del testo (esprimibile anche in valori esadecimali).

Clicca qui l'esempio pratico


<B>, <I>, <U>


<B>, <I>, <U> sono tre dei più usati tag di formattazione fisica dell'HTML. Tutti vanno aperti e successivamente richiusi:

<B> Testo grassetto </B>
Il testo compreso tra questi tag è trasformato in grassetto (la B sta per BOLD).

<I> Testo corsivo </I>
Il testo compreso tra questi tag è formattato in corsivo (la I sta per ITALIC)

<U> Testo sottolineato </U>
Il testo compreso tra questi tag è sottolineato pur non essendo un link (la U sta per UNDERLINE).

Esiste anche il tag STRIKE per il testo barrato:
<STRIKE> Testo sottolineato </STRIKE>

Clicca qui l'esempio pratico


<SUP> e <SUB>


Questi due tag di formattazione fisica creano rispettivamente: apici posti leggermente più in alto del normale testo (SUP) e pendici posti leggermente più in basso (SUB). E' possibile annidare diversi tag per ottenere effetti di sovrapposizione successiva. Questi elementi vengono usati soprattutto per indicare note o formule matematiche.
Questa la corretta sintassi:

HTML.it <SUP>©</SUP> è un marchio registrato

HTML.it <SUB>©</SUB> è un marchio registrato

Clicca qui l'esempio pratico


Testo preformattato


HTML legge il testo ovviamente da sinistra verso destra e, senza alcun tipo di formattazione, manda a capo alla fine di ogni riga senza soluzione di continuità. La formattazione successiva esaminata in questa lezione ha il compito di indicare al browser dove andare a capo, quale font utilizzare, quali parole enfatizzare e così via. Spesso, però, un documento creato con un normale editor di testo deve essere importato senza formattazione, così come è stato creato. A questo scopo HTML prevede i tag di testo preformattato (i quali non leggono ne' interpretano alcun tag di HTML, neanche i caratteri speciali):

<XMP> Testo da formattare </XMP>

<PRE> Testo da formattare </PRE>

Clicca qui l'esempio pratico



Entrambi i tag hanno lo stessa funzione, anche se lo standard di HTML 4 prevede l'uso di XMP e non di PRE.

Breve descrizione degli stili logici


Abbiamo descritto in apertura di lezione la differenza tra tag fisici e logici. Ora elenchiamo i tag logici più interessanti e il corrispondente utilizzo in HTML:

<ADDRESS>
Contrassegna informazioni di indirizzo (mail, telefono ecc.)

<BLOCKQUOTE>
Usato per citazioni più lunghe di due o tre righe

<CITE>
Usato per indicare la fonte della citazione

<CODE>
Viene utilizzato per formattare righe di codice di programmazione

<DFN>
Indica che il testo compreso è una definizione.

<EM>
Enfatizza il testo compreso all'interno del tag

<KBD> e <SAMP>
Poco utilizzati. Indicano cose che il computer dovrebbe dire all'utente e viceversa, secondo un tipico concetto di Unix

<STRONG>
Enfatizza il testo

<VAR>
Legato a CODE, indica le variabili di programmazione.


Nella lezione precedente abbiamo visto come formattare del semplice testo in HTML. A questo punto dobbiamo affrontare il modo in cui sistemare, dividere, posizionare il testo e gli altri oggetti di una pagina HTML all'interno del documento.

Creare paragrafi con <P>


Il tag <P> definisce un nuovo paragrafo del testo indicando al browser che lo stesso deve rimanere su una nuova riga ed essere posizionato a destra, a sinistra o al centro. Se non specificato oltre, il tag <P> allinea il testo di default sulla sinistra. Per indicare altri tipi di posizionamento esistono attributi specifici:

<P ALIGN=left>
Definisce un paragrafo e allinea sulla sinistra (left).

<P ALIGN=right>
Definisce un paragrafo e allinea sulla destra (right).

<P ALIGN=center>
Definisce un paragrafo ed allinea al centro (center).

Clicca qui l'esempio pratico


Andare a capo con <BR>


<BR> è un tag di interruzione di riga. Ha un funzionamento simile al paragrafo visto in precedenza, ma se ne discosta perchè non inizia un nuovo paragrafo.
In altri termini la sua funzione è simile alla pressione del tasto "invio" della tastiera.
Va usato singolarmente senza tag di chiusura.

Posizionare il testo con <DIV ALIGN> e <CENTER>


L'elemento <DIV> viene utilizzato per allineare il testo in posizione orizzontale a sinistra, destra e centro della pagina. L'attributo ALIGN è fondamentale a questo scopo.

<DIV ALIGN=left>Testo e immagini a sinistra</DIV>
Sposta gli elementi contenuti tra i suoi tag sulla sinistra.

<DIV ALIGN=right>Testo e immagini a destra</DIV>
Sposta gli elementi sulla destra.

<DIV ALIGN=center>Testo e immagini centrate</DIV>
Sposta gli elementi in posizione centrale.

Clicca qui l'esempio pratico


Il tag <CENTER> ha un funzionamento del tutto simile a <DIV ALIGN=center> ma il suo uso è stato "deprecato" dallo standard 4 di HTML. L'uso di <CENTER> è stato introdotto da Netscape, proprio quando l'HTML prevedeva l'uscita di DIV. L'enorme diffusione iniziale di Netscape ha reso questo tag altrettanto diffuso e per questa ragione ancora viene usato e riconosciuto dai browser (anche da MsIe). L'uso di <CENTER> è molto semplice:

<CENTER>Testo da centrare</CENTER>

Linee orizzontali con <HR>


Le linee orizzontali sono un ottimo strumento per dividere parti del documento e rendere il testo più leggibile. La sintassi necessaria al loro inserimento in un documento HTML è la seguente:

<HR align="CENTER" size="2" width="400" color="Red" noshade>

Il tag HR (acronimo che sta per Horizontal Rule) non ha bisogno di chiusure successive. Si compone di diversi attributi:

aling="CENTER": definisce la posizione della riga (center, right, left).

size="2": definisce l'altezza, in pixel, della riga.

width="400": definisce lunghezza orizzontale, in pixel, della linea. Può anche esprimersi in percentuale di spazio disponibile: width=80%.

color="RED": definisce il colore della linea.

noshade: se presente questo attributo elimina l'effetto 3D della linea. Se omesso produce tale effetto.

Clicca qui l'esempio pratico


Gli elenchi rappresentano uno dei modi più diffusi per organizzare informazioni all'interno di siti Web. Una delle loro caratteristiche principali è sicuramente quella di fornire un quadro chiaro e sintetico dell'argomento trattato.
HTML mette a disposizione diversi tipi di elenchi che di seguito andiamo a trattare singolarmente.

Elenchi ordinati (numerati)


Gli elenchi ordinati sono costituiti da un singolo tag di apertura e chiusura <OL></OL> e tanti tag di apertura per quante sono le voci di menu <LI>. Questa è la corretta sintassi per creare elenchi ordinati:

<OL>
<LI> Prima voce di menu
<LI> Seconda voce di menu
<LI> Terza voce di menu
</OL>

Clicca qui l'esempio pratico


Dall'esempio si nota come è possibile omettere il tag <BR> per il ritorno a capo, visto che è automaticamente inserito da <LI>. Se non stabilito diversamente (come vedremo in seguito) il tipo di elenco ordinato che il browser visualizzato è numerato (cioè l'elenco è costituita da una serie di numeri che da 1 crescono progressivamente). Le ultime versione di HTML prevedono la possibilità di elenchi ordinati che contengono un sistema di indicizzazione diverso dai numeri visti in precedenza:

Indicizzazione alfabetica maiuscola:

<OL TYPE=A>
<LI> Prima voce di menu
<LI> Seconda voce di menu
<LI> Terza voce di menu
</OL>

Indicizzazione alfabetica minuscola:

<OL TYPE=a>
<LI> Prima voce di menu
<LI> Seconda voce di menu
<LI> Terza voce di menu
</OL>

Indicizzazione con numeri romani maiuscoli:

<OL TYPE=I>
<LI> Prima voce di menu
<LI> Seconda voce di menu
<LI> Terza voce di menu
</OL>

Indicizzazione con numeri romani minuscoli:

<OL TYPE=i>
<LI> Prima voce di menu
<LI> Seconda voce di menu
<LI> Terza voce di menu
</OL>

Clicca qui l'esempio pratico


Elenchi NON ordinati (puntati)


Gli elenchi non ordinati funzionano in modo simile a quelli ordinati. La differenza di fondo è che le risorse indicizzate non sono legate da stretti rapporti di successione gerarchica, per cui non sono previsti elenchi progressivi quali numeri o lettere.

Gli elenchi non ordinati (o puntati) si compongono di un tag unico di apertura e chiusura <UL></UL> e tanti tag di elenco per quante sono le voci da indicizzare <LI>. La corretta sintassi per definire un elenco puntato è la seguente:

<UL>
<LI> Prima voce di menu
<LI> Seconda voce di menu
<LI> Terza voce di menu
</UL>

Clicca qui l'esempio pratico


Se non definito diversamente l'elenco è costituito da una serie di pallini.
Come per gli elenchi numerati anche in questo caso è possibile indicare diversi tipi di elenco:

I pallini pieni visti in precedenza sono ottenibili con disc:

<UL TYPE=disc>
<LI> Prima voce di menu
<LI> Seconda voce di menu
<LI> Terza voce di menu
</UL>

L'attributo circle imposta pallini vuoti all'interno:

<UL TYPE=circle>
<LI> Prima voce di menu
<LI> Seconda voce di menu
<LI> Terza voce di menu
</UL>

L'attributo square imposta elenchi definiti da quadratini pieni:

<UL TYPE=square>
<LI> Prima voce di menu
<LI> Seconda voce di menu
<LI> Terza voce di menu
</UL>

Clicca qui l'esempio pratico


Internet, solo negli ultimi 10 anni affermatasi come media di massa, è stato per lunghi anni un sistema di comunicazione ad esclusivo utilizzo di apparati militari prima, e universitari dopo. E' agevole immaginare quanto poco inclini alla grafica ed all'estetica fossero i vecchi navigatori della Rete. Alla fine degli anni Ottanta Internet ha subito una radicale trasformazione che ha portato sulle "autostrade telematiche" un'utenza di massa, con esigenze diverse da quelle militari o accademiche. Con la trasformazione della Rete si è imposta l'esigenza di mettere a disposizione strumenti di navigazione più "user friendly" per esigenze non più meramente di studio e ricerca. Così, nel 1989 nasce il WWW che grazie al primo browser della storia, Mosaic, trasforma il testo bianco su sfondo nero nell'attuale Web, fatto di colori e interattività.

La rivoluzione dell'immagine (criticata da alcuni puristi accademici che videro nell'Internet di massa la fine del sistema di comunicazione) fu anche merito di un tag oggi molto comune <IMG>, cioè l'elemento necessario a richiamare immagini all'interno della pagina.

<IMG>


Prima di trattare nello specifico il tag principale per l'inserimento di immagini negli ipertesti è bene precisare alcuni concetti di HTML. A differenza di molti editor di testo (Ms Word, per esempio) gli ipertesti non vengono "fusi" con le immagini a corredo grafico, ma si limitano a richiamarle da un percorso specifico in locale o su Web. In altre parole esiste una soluzione di continuità molto chiara tra file .htm e immagini (ma anche suoni, applet ecc.). I documenti HTML si limitano a prevedere uno spazio al proprio interno entro il quale vanno inserite le immagini richiamate.

Il tag <IMG> non ha bisogno di chiusura e la sua corretta sintassi è la seguente:

<IMG SRC="immagine.gif">

Dove
SRC sta per Search ed è il percorso dal quale il browser ricava l'immagine (in questo caso "immagine.gif"). Come detto si tratta di un tag singolo, nel senso che NON va chiuso con un corrispondente </IMG>.

Clicca qui l'esempio pratico


I browser (Netscape, MsIe, Opera ecc.) riconoscono molti formati grafici, anche se sono due quelli più utilizzati:
GIF (Graphics Interchange Format) e JPEG (Joint Photographics Experts Group). Negli ultimi mesi sta diffondendosi su scala mondiale un altro formato: PNG (Portable Network Graphics).

L'elemento <IMG> è corredato da diversi attributi molto utili ai fini del suo utilizzo. Vediamo insieme quali.

ALT


L'utilizzo di commenti testuali alle immagini è una fondamentale regola da osservare nella creazione di siti Web per alcune buone ragioni:

taluni browser potrebbero essere impostati per non richiamare le immagini;

i browser testuali per non vedenti non riuscirebbero ad interpretare le immagini senza un commento.

è possibile evitare didascalie inserendo commenti all'interno dell'immagine stessa. In tutti i casi considerati l'uso di commenti risolve il problema e consente di ottimizzare l'utilizzo di una pagina Web. La corretta sintassi per i commenti è la seguente:

<IMG SRC="immagine.gif" ALT="Opera di K. Haring">

Clicca qui l'esempio pratico


Per verificare gli effetti passa con il mouse sull'immagine dell'esempio.

WIDTH e HEIGHT


Negli esempi finora indicati non abbiamo specificato le misure dell'immagine che il browser ha provveduto a cercare automaticamente. E' possibile definire altezza e larghezza dell'immagine con gli attributi width ed height:

<IMG SRC="immagine.gif" WIDTH=178 HEIGHT=180 ALT="Opera di K. Haring">

Dove WIDTH=178 è la dimensione orizzontale (larghezza) dell'immagine espressa in pixel, e HEIGHT=180 la dimensione verticale (altezza).

Con questi attributi è possibile definire dimensioni differenti da quelle effettive dell'immagine. E', comunque, consigliabile inserire immagini di dimensioni naturali soprattutto se in formato GIF, visto che ridimensionando questo formato la qualità decade enormemente.

BORDER


Con l'attributo BORDER è possibile assegnare un bordo all'immagine. I valori sono numerici ed espressi in pixel. Il valore BORDER impostato su 0 ha l'effetto di non visualizzare alcun bordo. Se questo attributo viene omesso il browser non assegna nessun bordo, ma se l'immagine è anche un link viene automaticamente assegnato un BORDER=1. Questa che segue è la giusta sintassi:

<IMG SRC="immagine.gif" WIDTH=178 HEIGHT=180 BORDER=2 ALT="Opera di K. Haring">

Clicca qui l'esempio pratico


HSPACE e VSPACE


Con questi due attributi è possibile stabilire la distanza in pixel dell'immagine dagli oggetti che si trovano ai quattro lati della stessa.

HSPACE definisce la distanza dai lati destro e sinistro dell'immagine degli oggetti più vicini (testo, immagini, applet ecc.).

VSPACE definisce la distanza dai lati superiore e inferiore dell'immagine degli oggetti più vicini (testo, immagini, applet ecc.). Questa la corretta sintassi:

<IMG SRC="immagine.gif" WIDTH=178 HEIGHT=180 BORDER=2 VSPACE=3 HSPACE=3 ALT="Opera di K. Haring">

Questi attributi risultano utili quando si vuole distanziare l'immagine dagli oggetti più vicini.

ALIGN


L'attributo ALIGN definisce la posizione dell'immagine rispetto al testo posto immediatamente prima o dopo la stessa. Esistono varie opzioni per l'attributo ALIGN:

ALIGN=top: allinea la prima riga di testo sulla sinistra al top dell'immagine.
Clicca qui per un esempio pratico.

ALIGN=middle: allinea la prima riga di testo sulla sinistra al centro dell'immagine.
Clicca qui per un esempio pratico.

ALIGN=bottom: allinea la prima riga di testo sulla sinistra nella parte più bassa dell'immagine.
Clicca qui per un esempio pratico.

ALIGN=left: allinea il testo sulla destra dell'immagine partendo dal top.
Clicca qui per un esempio pratico.

ALIGN=right: allinea il testo sulla sinistra dell'immagine partendo dal top.
Clicca qui per un esempio pratico.


Molte volte avrai sentito parlare di ipertesti e di come questi reggano il Web. Un ipertesto è un modo di formattare documenti in forma non sequenziale. Per comprendere questa caratteristica si pensi ad un libro cartaceo che si struttura in: indice, capitoli e glossario. Ha, dunque, una struttura sequenziale nel senso che si legge l'indice per passare ai capitoli (dal primo all'ultimo) e terminando con il glossario dei termini. Il lettore, in questo caso, ha un percorso di lettura che lo porta necessariamente a leggere il primo capitolo per giungere all'ultimo. Con gli ipertesti questa struttura sequenziale cessa di esistere grazie ai collegamenti ipertestuali (link) che permettono di leggere il documento senza seguire necessariamente un ordine sequenziale. La peculiarità di saltare da un punto all'altro del documento è tipica del WWW, dove spesso seguendo un documento si passa da un sito all'altro senza soluzione di continuità.

I documenti HTML sono degli ipertesti il cui funzionamento è in massima parte dovuto agli HyperLink o ancoraggi, il cui tag specifico è
<A>.

<A HREF>


L'elemento <A> (la A sta per Anchor) ha bisogno di un tag di apertura e chiusura e al suo interno è possibile inserire testo, immagini o altri elementi multimediali.
Perchè funzioni, l'elmento <A> deve essere associato ad altri attributi. Il più importante di questi è HREF (abbreviazione di Hypertext Reference) contenente l'URL o la pagina da raggiungere. Questa la sintassi:

<A HREF="https://www.html.it">Visita HTML.it</A>

Nel codice sopracitato cliccando sul testo "Visita HTML.it" (compreso tra i tag A in apertura e chiusura) si raggiunge l'URL https://www.html.it indicato dall'attributo HREF.

E' possibile sostituire al testo un'immagine con effetto identico.

HREF può contenere sia link a risorse esterne (come in questo caso) ovvero link ad altri documenti dello stesso sito. Per esempio, se ci troviamo nella pagina 1.htm e vogliamo inserire un link alla pagina 2.htm presente nella stessa cartella, il codice corretto è:

<A HREF="2.htm">Clicca qui per raggiungere la nuova pagina</A>

TARGET


TARGET è un attributo implementato per esigenze legate alla gestione dei frame. In una pagina divisa in frame, infatti, questo attributo indica in quale di questi debba essere visualizzato il documento. Non entriamo nel merito dei frame.

In questa sede possiamo, però, trattare di un uso ulteriore di questo attributo. Grazie a TARGET è possibile caricare un pagina associata a HREF in un'altra finestra del browser, attraverso la seguente sintassi:

<A HREF="https://www.html.it" TARGET="_new">Visita HTML.it</A>

Questo l'esempio pratico: Visita HTML.it

L'attributo
TARGET="_new" indica al browser di caricare il link a https://www.html.it in una nuova (_new) finestra.

Il lancio di nuove finestre da link può essere molto utile nel caso in cui si rimandi a risorse esterne e non si voglia perdere il visitatore, che in questo modo terrà aperte due finestre.

TITLE


Come per l'elemento IMG anche per i collegamenti ipertestuali è possibile definire un testo di commento, attivato quando il mouse passa sull'area di link. Questa la sintassi:

<A HREF="https://www.html.it" TITLE="Il sito italiano sul Web publishing">Visita HTML.it</A>

Questo l'esempio pratico: Visita HTML.it

MAILTO (link a e-mail)


E' possibile inserire collegamenti anche verso indirizzi e-mail, attraverso una sintassi leggermente diversa da quella indicata per le URL. Questo il codice:

<A HREF="mailto:webmaster@html.it">Scrivi a HTML.it</A>

Questo l'esempio pratico: Scrivi a HTML.it

Cliccando su questo link viene automaticamente aperto il tuo programma di posta predefinito con il campo TO già impostato su webmaster@html.it.

Link interni al documento


Finora abbiamo analizzato link a risorse esterne o altre pagine di uno stesso sito. E' possibile creare collegamenti con punti specifici di uno stesso documento, grazie al codice <A NAME= "ancora">.In altri termini se con i collegamenti visti finora viene linkato un documento, con <A NAME> viene linkato un punto specifico del documento.
Seguono le procedure per creare collegamenti a punti interni del documento:

Inserisci il tag <A NAME="ancora"> nel punto del documento da raggiungere. ancora è il nome identificativo del punto in cui il browser dovrà visualizzare la pagina. Ovviamente puoi sostituirlo con altri termini.

Nel collegamento dal quale vuoi raggiungere il punto del nuovo documento inserisci la seguente sintassi: <A HREF="#ancora">Visita HTML.it</A>

Il cancelletto (#) indica che si tratta di un link interno. L'esempio considerato rimanda ad un punto della stessa pagina, perchè se a destra del cancelletto c'è il nome del link interno, a sinistra non è scritto nulla. Se volessimo raggiungere un punto preciso di un documento esterno la sintassi corretta dovrebbe essere: <A HREF="nome_file.htm#ancora">Visita HTML.it</A>. Dove "nome_file.htm" è il nome del documento da raggiungere, e "ancora" il punto preciso all'interno dello stesso.

Cliccando sul link che segue visualizzerai un punto di questo stesso documento: clicca qui per una prova.

La larghezza e l'altezza complessiva di una tabella viene indicata all'interno dell'attributo <TABLE>, il quale appunto e' quello che deve aprire e chiudere una tabella. Le dimensioni vengono definite con WIDTH (larghezza) e HEIGHT (altezza) e possono essere espresse in pixel o in percentuale della pagina:

<TABLE WIDTH=500>
</TABLE>


In questo esempio di codice la larghezza della tabella viene espressa in pixel, in questo caso 500. Se si sceglie questa opzione, a qualsiasi risoluzione venga vista la pagina, la misura della tabella rimmarra' invariata, cioe' di 500 pixel.
Cosa diversa accade nel momento in cui si sceglie una grandezza in percentuali della pagina:

<TABLE WIDTH=50%>
</TABLE>


In questo caso la larghezza della tabella sara' diversa a seconda della risoluzione video di colui, o colei, che ne esamini il contenuto.
Per esempio chi ha una risoluzione video di 640x480 vedra' un tabella di circa 320 pixels (perche' abbiamo impostato la tabella di una grandezza pari al 50% della pagina), mentre chi ha una risoluzione di 800x600 la vedra' di 400 pixel.
A mio avviso e' meglio mantenere il controllo assoluto sulla grandezza delle tabelle adottando una misurazione in pixel piuttosto che in percentuali.

Ora diamo uno sguardo al modo in cui deve strutturarsi una tabella. Per fare questo ci serviremo di alcune immagini:



Come si vede da questa immagine, l'attributo <TABLE> genera la tabella mentre con <TD> si definiscono i campi presenti all'interno di tale tabella.
Ecco come il disegno puo' essere trasformato in codice e quindi in una vera e propria tabella:

<TABLE BORDER=1 WIDTH=300>

<TD WIDTH=100>

</TD>

<TD WIDTH=100>

</TD>

<TD WIDTH=100>

</TD>

</TABLE>

prova

prova

prova



Consideriamo nel prossimo esempio la necessita' di generare una tabella di questo tipo:



Come si nota abbiamo introdotto un nuovo comando <TR> che e' una sorta di "a capo" all'interno della tabella. Ecco come il disegno puo' essere trasformato in codice e quindi in una vera e propria tabella:

<TABLE BORDER=1 WIDTH=300>

<TR>
<TD WIDTH=100>
</TD>

<TD WIDTH=100>
</TD>

<TD WIDTH=100>
</TD>
</TR>

<TR>
<TD WIDTH=100>
</TD>

<TD WIDTH=100>
</TD>

<TD WIDTH=100>
</TD>
</TR>

</TABLE>

prova

prova

prova

prova

prova

prova



Lo spazio tra i vari campi di una tabella e' definito all'interno del comando </TABLE> con CELLSPACING=X e CELLPADDING=X (dove X e' la distanza in pixel):

<TABLE CELLPADDING=10 CELLSPACING=10>
</TABLE>


La posizione del testo o delle immagini all'interno dei vari campi <TD> della tabella puo' essere modicata in diversi modi:

<TABLE WIDTH=300 HEIGHT=200>

<TD width= VALIGN=TOP>
prova </TD>

<TD WIDTH=100 VALIGN=BOTTOM>
Prova </TD>

<TD WIDTH=100 VALIGN=MIDDLE>
Prova </TD>

</TABLE>

prova

Prova

Prova




<TABLE WIDTH=300 HEIGHT=200>

<TD width= ALIGN=RIGHT>
prova </TD>

<TD WIDTH=100 ALIGN=CENTER>
Prova </TD>

<TD WIDTH=100 ALIGN=LEFT>
Prova </TD>

</TABLE>

prova

Prova

Prova





Ogni campo puo' avere un colore di background diverso dagli altri ed addirittura uno sfondo come delle normali pagine web (gli sfondi possono essere sostituiti da GIF animate):

<TABLE WIDTH=300 HEIGHT=200>

<TD width= BGCOLOR="red">
prova </TD>

<TD WIDTH=100 BGCOLOR="yellow">
Prova </TD>

<TD WIDTH=100 BGCOLOR="gray">
Prova </TD>

</TABLE>

prova

Prova

Prova




<TABLE WIDTH=300 HEIGHT=230>

<TD width= BACKGROUND="sfondo15.jpg">
prova </TD>

<TD WIDTH=100 BACKGROUND="sfondo26.jpg">
Prova </TD>

<TD WIDTH=100 BACKGROUND="sfondo61.jpg">
Prova </TD>

</TABLE>

prova

Prova

Prova



HTML soffre di limiti propri di un sistema di contrassegno ideato per scopi molto lontani da quelli attualmente richiesti dal Web design. Se questi limiti appaiono marginali agli occhi dei neofiti, risultano fastidiosi, e molto spesso immobilizzanti, per i professionisti formatisi nella grafica tradizionale. Posizionare un'immagine, creare una banda laterale, giustificare del testo in HTML diventa un problema risolvibile esclusivamente con strumenti nati per tutt'altro scopo (le tabelle, per esempio, nel 90% dei casi vengono utilizzate per posizionare elementi nella pagina, invece che per ordinare dati).
Il problema, in termini minimamente più tecnici, riguarda la classica separazione SGML tra stile, contenuti e struttura. HTML "tradizionale" non soddisfa questa condizione, ma anzi, ne esaspera la confusione.

Ma cosa significa separare lo stile dai contenuti? Consideriamo un sito Web mediamente complesso, con un numero di pagine HTML pari a 100. Poniamo che il testo adottato per l'esposizione degli argomenti sia un "arial" corsivo. Con gli strumenti classici di HTML il codice per ottenere questo risultato e':

<FONT FACE="ARIAL"><I>Testo della pagina</I></FONT>

ripetuto in tutte le 100 pagine del sito, a chiusura e apertura del testo da formattare. Semplice, ovvio e per molti versi banale. Ma cosa succede nel momento in cui scegliamo di modificare il tipo di carattere a tutte le pagine? Non c'e' altra soluzione che aprire le 100 pagine e procedere ad altrettante modifiche, che sostituiscano il nome "arial" con il nuovo font scelto. Un webmaster di medie capacita' puo' impiegare solo qualche decina di minuti, che diventano ore per siti di grandi dimensioni. Bene, questa perdita di tempo e' diretta conseguenza della promiscuita' tra stile e contenuto, laddove il primo (il tag FONT) non e' separato dal secondo (il testo della pagina).
Viene da se' che la soluzione a questo problema e' nella separazione tra i due elementi sopracitati, che nella pratica si risolve adottando i Cascading Style Sheets. D'ora in poi ci serviremo dell'acronimo CSS per richiamare questi "fogli di stile a cascata" che da tempo sono stati introdotti nel Web publishing, ma che solo negli ultimi mesi hanno conosciuto una grande diffusione.

Il termine "a cascata" (cascading) richiama una delle caratteristiche principali di questa tecnologia, per cui e' possibile incorporare nel documento differenti fogli di stile, ognuno dei quali, in base a regole gerarchiche, prevale sull'altro.
I CSS sono stati introdotti da Microsoft dalla terza versione di Internet Explorer, e parzialmente supportati da Netscape soltanto dalla quarta versione dell'omonimo browser. Chi accede con un browser obsoleto ad un documento formattato con fogli CSS, si trovera' di fronte una pagina gestita dalle opzioni di default del browser (lo sfondo, per esempio, sarà grigio; il tipo di testo "times new romans" ecc).
I CSS sono stati ufficialmente riconosciuti e standardizzati dal W3C (consorzio internazionale per lo sviluppo del Web) nelle raccomandazioni "CSS1" prima, e "CSS2" poi. Si rimanda a questi documenti ufficiali per ulteriori approfondimenti.

L'argomento dei fogli di stile è abbastanza complesso da richiedere una trattazione molto più ampia di quella che si potrebbe fornire in questa sede. Per questo motivo si è deciso di dedicare all'argomento un'intera sezione di HTML.it che approfondisce e chiarisce tutte le tematiche legate ai CSS. Clicca qui per saperne di piu'.

Amati e odiati, utili o inutili, benfatti o pessimi i frames sono strumenti entrati ormai nella consuetudine del web, e perfettamente gestiti da tutti i browser. I detrattori dei frames affermano l'inutilita' di suddividere ulteriormente le pagine web; pagine che in ultima analisi possono risultare poco leggibili. Altri, come me, pensano che i frames possano rendersi utilissimi evitando di caricare le stesse immagini e mantenendo ordinata la struttura e i contenuti del sito. Naturalmente abusare dei frames puo' portare a traguardi di pessima impostazione grafica, giungendo ad un risultato opposto rispetto a quello preventivato.
Un punto certamente a sfavore dei frames e' la loro incompatibilita' con i programmi di navigazione dei non vedenti che davanti a tali strumenti si bloccano, non permettendo la lettura delle pagine.
Una buona soluzione e' quella di creare una versione frame ed una versione senza frame (come questa stessa guida ha fatto).

Come si creano i frames?
Prima di tutto diamo uno sguardo ai comandi HTML per la gestione dei frame.

N2.0

Documento Frame

<FRAMESET></FRAMESET>

(al posto di <BODY>

N2.0

altezza in righe

<FRAMESET ROWS=,,,></FRAMESET>

(pixel o %)

N2.0

altezza in righe

<FRAMESET ROWS=*></FRAMESET>

(* = misura relativa)

N2.0

larghezza in colonne

<FRAMESET COLS=,,,></FRAMESET>

(pixel o %)

N2.0

larghezza in colonne

<FRAMESET COLS=*></FRAMESET>

(* = misura relativa)

N3.0b

larghezza della cornice

<FRAMESET BORDER=?>


N3.0b

cornice

<FRAMESET FRAMEBORDER="yes|no">


N3.0b

colore della cornice

<FRAMESET BORDERCOLOR="#$$$$$$">


N2.0

Definizione del Frame

<FRAME>

(contenuto di ogni singolo riquadro)

N2.0

documento da visualizzare

<FRAME SRC="URL">


N2.0

denominazione del frame

<FRAME NAME="***"|_blank|_self| _parent|_top>


N2.0

larghezza dei margini

<FRAME MARGINWIDTH=?>

(margine destro e sinistro)

N2.0

altezza dei margini

<FRAME MARGINHEIGHT=?>

(margine alto e basso)

N2.0

barra di scorrimento?

<FRAME SCROLLING="YES|NO|AUTO">


N2.0

dimensione non modificabile

<FRAME NORESIZE>


N3.0b

cornice

<FRAME FRAMEBORDER="yes|no">


N3.0b

colore della cornice

<FRAME BORDERCOLOR="#$$$$$$">


N2.0

contenuto in assenza di frame

<NOFRAMES></NOFRAMES>

(per i vecchi browsers)



Per creare una pagina divisa in frame e' necessario creare piu' files HTML richiamati da un file principale che e' poi quello che ne permette la gestione. Prima di tutto quindi bisogna impostare questo file "sorgente", e poi successivamente gli altri files che compongono il frame.

Consideriamo di dover creare una finestra divisa in frame come da figura, con un frame in alto fisso (nel quale caricheremo il file "top.htm" da creare a parte)e un frame centrale (nel quale caricheremo il file "central.htm" da creare a parte) il quale cambi a seconda della pagina che si dovra' visualizzare. Come scritto sopra questi due frames devono essere gestiti da un terzo files il quale dovra' richiamarli assegnando loro una parte della pagina. Ecco il codice di questa pagina:

<FRAMESET rows="80,*">

<frame name="alto" src="top.htm">
<frame name="centrale" src="central.htm">

</FRAMESET>



Come si vede il codice del frame e' racchiuso tra i comandi <FRAMESET></FRAMESET> che si comportano come gli usuali comandi <HTML></HTML>.
La grandezza dei frame (o meglio lo spazio che ognuno di essi deve occupare della pagina) e' stabilita dal comando rows="80,*, che sta a significare che il frame alto (che in questo caso e' una riga, "rows") deve essere di 80 pixels, mentre quel "*" sta a significare che tutto il resto deve essere assegnato al frame centrale. Avremmo potuto esprimere anche in percentuali le grandezze dei frames, in questo modo:

<FRAMESET rows="20%,*">



Impostati i due parametri <FRAMESET></FRAMESET> all'interno di essi si definiscono i nomi e i files da richiamare nei due frames creati. E' necessario dare un nome al frames (name="alto") e indicare il file HTML che dentro al frame dovra' essere caricato (SRC="top.htm"). Si devono quindi previamente creare due files di nome "top.htm" e "central.htm".
Nota come sia importante la posizione all'interno del codice per la corretta interpretazione da parte del browser. Se infatti si invertono gli ordini in questo modo:

<FRAMESET rows="80,*">

<frame name="centrale" src="central.htm">
<frame name="alto" src="top.htm">

</FRAMESET>

Il browser invertira' l'ordine di assegnazione e carichera' il file "central.htm" nel frame superiore e il file "top.htm" nel frame centrale.

Clicca qui per vedere il risultato di questo frame.

Per creare due frame verticali e' sufficiente sostituire a "rows" il termine "cols":

<FRAMESET cols="100,*">

<frame name="sx" src="sx.htm">
<frame name="centrale" src="central.htm">

</FRAMESET>



Clicca qui per vedere il risultato di questo frame.



I vecchi browsers non supportavano i frames per cui, nella prospettiva che le pagine vengano visualizzate da uno di questi "vecchi" software, e' utile inserire del codice che avverta della presenza di frames e della impossibilita' da parte del browser di visualizzarle. Ecco il codice da inserire:

<noframe>

<HTML>
<body>

Attenzione. Il tuo browser non supporta l'opzione dei frame. Per visualizzare queste pagine e' necessario scaricare un borwser che supporti tali opzioni. Ti consiglio Netscape 3.0 o superiore.

</body>
</html>

</noframe>



E' possibile adottare contemporaneamente una divisione sia in colonne (cols) che in righe (rows), in modo tale da creare una finestra divisa in piu' frames. Vediamo come si deve operare sul codice HTML del documento a seconda del numero e della posizione dei frames che si intendono creare.


Clicca qui per vedere il risultato di questo frame.

<frameset rows="100,*">

<frame name="alto" src="top.htm">

<frameset cols="150,*">

<frame name="sx" src="sx.htm.htm">
<frame name="centrale" src="central.htm">

</frameset>

</frameset>




Clicca qui per vedere il risultato di questo frame.

<frameset cols="120,*">

<frame name="sx" src="sx.htm">

<frameset rows="100,*">

<frame name="alto" src="top.htm">
<frame name="centrale" src="central.htm">

</frameset>

</frameset>



Clicca qui per vedere il risultato di questo frame.

<frameset cols="120,*">

<frame name="sx" src="sx.htm">

<frameset rows="20%,60%,20%,*">

<frame name="alto" src="top.htm">
<frame name="centrale" src="central.htm">
<frame name="basso" src="basso.htm">

</frameset>

</frameset>



Clicca qui per vedere il risultato di questo frame.

<frameset cols="75%,25%">

<frameset rows="20%,80%*">

<frame name="alto" src="top.htm">
<frame name="centrale" src="central.htm">

</frameset>

<frame name="dx" src="dx.htm">

</frameset>



Clicca qui per vedere il risultato di questo frame.

<frameset cols="75%,25%">

<frameset rows="20%,80%*">

<frame name="alto" src="top.htm">

<frameset cols="20%,80%*">

<frame name="sx" src="sx.htm">
<frame name="centrale" src="central.htm">

</frameset> </frameset>

<frame name="dx" src="dx.htm">

</frameset>



Clicca qui per vedere il risultato di questo frame.

<frameset cols="75%,25%">

<frameset rows="20%,80%*">

<frame name="alto" src="top.htm">
<frame name="centrale" src="central.htm">

</frameset> <frameset rows="24%,76%">

<frame name="top" src="top2.htm"> <frame name="dx" src="dx.htm">

</frameset> </frameset>



Clicca qui per vedere il risultato di questo frame.

<frameset cols="25%,75%">

<frameset rows="80%,20%">

<frame name="alto" src="top.htm">
<frame name="basso" src="basso.htm">

</frameset>

<frame name="centrale" src="central.htm">

</frameset>



Clicca qui per vedere il risultato di questo frame.

<frameset rows="20%,60%,20%">

<frame name="alto" src="top.htm">
<frame name="centrale" src="central.htm">
<frame name="basso" src="basso.htm">

</frameset>



Clicca qui per vedere il risultato di questo frame.

<frameset cols="20%,60%,20%">

<frame name="sx" src="sx.htm">
<frame name="centrale" src="central.htm">
<frame name="dx" src="dx.htm">

</frameset>




Per eliminare il bordo grigio dei frames si deve inserire il seguente codice:
<frameset cols="20%,60%,20%" border=0>

Per impedire che i frames vengano ridimensionati dal visitatore:
<frame name="alto" src="top.htm" noresize>

Per eliminare sempre le barre di scorrimento (scrollbars):
<frame name="alto" src="top.htm" scrolling="no">

Per renderle sempre visibili:
<frame name="alto" src="top.htm" scrolling="yes">

Per renderle visibili solo quando servono:
<frame name="alto" src="top.htm" scrolling="auto">

Per regolare la distanza dal contenuto del frame dal margine alto (manginheight) e sinistro e destro (marginwidth):
<frame name="alto" src="top.htm" marginheight=2 marginwidth=5>




Per quanto riguarda i links all'interno dei frames (cioe' come caricare una pagina in una frame diverso da quello in cui si trova il link) si deve far riferimento al nome che in fase di realizzazione abbiamo assegnato ai vari frames. Nome che non si riferisce al file ma a quanto scritto dopo "name=". In questo caso, per esempio:

<frame name="alto" src="top.htm">

il nome assegnato e' "alto".

Consideriamo la seguente pagina divisa in frames:


<frameset cols="20%,60%,20%">

<frame name="sx" src="sx.htm">
<frame name="centrale" src="central.htm">

</frameset>


Consideriamo che da un link presente su "SX", dobbiamo caricare un'altra pagina sul frame "Centrale".

Se il link, presente sul frame "SX", fosse semplicemente:

<A HREF="nuova.htm">Clicca</A>

la pagina verrebbe caricata all'interno dello stesso frame (cioe' "SX"), perche' in assenza di comandi adatti il browser capisce di dover caricare la nuova pagina nello stesso frame in cui e' presente il link.

L'esatto codice e':

<A HREF="nuova.htm" TARGET="centrale">Clicca</A>

Clicca qui per una prova.

Altro uso fondamentale del comando <TARGET> e' quello di richiamare un link ad un'altra pagina la quale verra' visualizzata a pieno schermo, eliminando tutti i frame preesistenti.
Ecco il codice:

<A HREF="nuova.htm" TARGET="_parent">Clicca</A>

Clicca qui per una prova.

Se inserisci il codice:

<base target="_top">

in testa al documento HTML tutti i link presenti nella pagine elimineranno i frame esistenti, senza necessita' di inserirli in ogni link.



Un'altra necessita' puo' essere quella di caricare, con un solo click, due o piu' frames (naturalmente la finestra deve essere divisa in almeno tre frames).
Consideriamo una pagina suddivisa come nella figura:

<frameset cols="120,*">

<frame name="sx" src="sx.htm">

<frameset rows="100,*">

<frame name="alto2" src="top.htm">
<frame name="centrale3" src="central.htm">

</frameset>

</frameset>



La nostra necessita' e' di inserire un solo link nel frame di "SX" che carichi contemporaneamente due pagine diverse nei due frames di destra: "alto" e "centrale". Per fare questo e' necessario inserire qualche riga di codice javascript. La prima parte del codice va inserita tra <HEAD></HEAD>:

<HEAD>
<script language="JavaScript">
<!--
Hiding
function loadtwo(page2, page3)
// -->
</script>
</HEAD>

Mentre la seconda parte va inserita tra <BODY></BODY> dove si vuole inserire il link:

<BODY>
<FORM NAME="buttons">

<INPUT TYPE="button" VALUE="Clicca"
onClick="loadtwo('nuovo1.htm','nuovo2.htm')">

</FORM>
</BODY>


Clicca qui per una prova.


Prima di passare alla trattazione degli argomenti, e' bene precisare che le difficolta' di comprensione dei moduli HTML sono giustificabili con la singolarita' che essi costituiscono nella normale programmazione ipertestuale. Il grosso degli elementi messi a disposizione da HTML, infatti, permette al visitatore di visualizzare i contenuti del nostro sito, ma non di interagire con esso. In altre parole il rapporto utente/pagina diventa unidirezionale e statico. Con i moduli, al contrario, l'utente puo' interagire con il sito spedendo un proprio commento, avanzando richieste senza necessita' di scrivere via e-mail, firmando guestbook, rispondendo a sondaggi e cosi' via. Tutto questo rende il rapporto bidirezionale ed e' possibile solo grazie all'intervento di programmi residenti su server, che prendono il nome di CGI (Common Gateway Interface). Questi programmi rendono possibile cio' che altrimenti non lo sarebbe agendo dal lato client. Questo vuol dire che in realta' la gestione dei moduli dipende in misura preponderante dal server, piuttosto che dalla programmazione HTML in se' e per se'. Perche' un form HTML funzioni e' necessario disporre di un CGI residente sul proprio server o su altro sito. Il Web, come al solito, non lesina servizi gratuiti indirizzati proprio a questo scopo. Spesso si tratta di CGI gratuiti messi a disposizione dei propri cittadini da comunita' virtuali (Geocities, Tripod, Xoom ecc.), ma non mancano servizi specifici svincolati da tali comunita'. Per i piu' smaliziati e' consigliato rivolgersi alla fonte, ed impostare in prima persona sul proprio server uno dei tanti programmi CGI distribuiti gratuitamente dai propri creatori e raccolti in siti specifici.

A dire il vero, un form puo' essere creato anche evitando il passaggio per un CGI, ma con svantaggi e limiti che non possono essere taciuti, e che rendono un tale utilizzo l'estrema ratio da adottare solo in casi di assoluta necessita'. Nelle pagine seguenti parleremo nel dettaglio anche di questa possibilita'.

La creazione di un modulo consta di due fasi:

  • impostazione dei tag per la creazione del modulo, dei campi e del tasto di spedizione;
  • creazione di uno script CGI su server (o richiamo di uno script gia' impostato)

I moduli sono stati introdotti dalla versione HTML 2.0.
Vediamo, nel particolare, tutti i tag che HTML 4.0 prevede per la creazione di form.

<FORM></FORM>

Questo tag apre e chiude il modulo e raccoglie il contenuto dello stesso, che puo' variare a seconda dei tag che vedremo oltre. Non e' possibile inserire un modulo all'interno di un altro. In altre parole i form non permettono nidificazioni.

La sintassi usuale dei tag analizzati e' la seguente:

<FORM method="get|post" action="https://www.tuosito.com/cgi-bin/nome_script.cgi">

Se method e' impostato come get i dati vengono spediti al server e separati in due variabili.
Per questo metodo il numero massimo di caratteri contenuti nel form e' di 255.
Utilizzando "method=post" i dati vengono ricevuti direttamente dallo script CGI senza un preventivo processo di decodifica. Questa caratteristica fa si' che lo script possa leggere una quantita' illimitata di caratteri.

Impostato il primo tag <FORM> del modulo e' possibile, sempre che lo script CGI lo permetta, creare alcuni elementi molto utili al fine di una corretta gestione dei dati:

<INPUT TYPE=HIDDEN NAME=MAILFORM_SUBJECT VALUE="Titolo del form">

Questo codice determina il titolo (subject) del messaggio che ricevarai via e-mail, e che conterra' il contenuto del form. E' molto utile ricevere messaggi con un proprio titolo, soprattutto per chi usa dei filtri per la posta, ma anche per l'indicizzazione della corrispondenza.

<INPUT TYPE=HIDDEN NAME=MAILFORM_URL VALUE="https://www.tuosito.it">

Questo codice e' molto utile, in quanto una volta compilato e spedito correttamente il form, da' in risposta una pagina HTML successiva, all'interno della quale e' possibile inserire qualsiasi commento. La cosa piu' ovvia da fare e' visualizzare una pagina di conferma "il tuo form e' stato correttamente inoltrato", ma si puo' anche rimandare direttamente alla pagina principale del sito. Si tratta di comandi non standardizzati che variano a seconda del CGI utilizzato. Quindi il codice riportato sopra non funziona universalmente, ma solo con l'esempio pratico che piu' oltre andremo a dimostrare.

Il tag di base per la definizione degli elementi di un form e' <INPUT>, che viene utilizzato per aggiungere pulsanti, menu di scelta, password ecc. a <INPUT> possono venire assegnati 8 valori differenti, che andiamo a spiegare.

type="TEXT"


<INPUT type="TEXT" name="nome" maxlength="40" size="33" value="Il tuo nome">

Questo valore crea i tipici campi di testo, dove usualmente vengono richiesti dati quali il nome o l'indirizzo e-mail. E' un valore usato soprattutto per informazioni non predefinite che variano di volta in volta. TEXT ha tre attributi aggiuntivi presenti anche nell'esempio: maxlength (il numero massimo di caratteri inseribili nel campo, oltre il quale non e' possibile aggiungere), size (la larghezza della stringa all'interno della pagina) e value (visualizza un testo di default all'interno della stringa).

ESEMPIO


type="PASSWORD"


<INPUT type="PASSWORD" name="nome" maxlength="40" size="33">

Questo campo funziona similmente a TEXT visto in precedenza, ma con una piccola differenza che ne giustifica il nome: quando si digita all'interno della stringa bianca, non appaiono le lettere ma i classici asterischi delle password. In realta' i dati non vengono in alcun modo codificati, per cui rimane un'insicurezza di fondo che questo comando non elimina.

ESEMPIO


type="CHECKBOX"


<INPUT type="CHECKBOX" name="età" value="yes" checked>

Questo attributo viene solitamente utilizzato per informazioni del tipo "si/no" e "vero/falso". Crea delle piccole caselle quadrate da spuntare o da lasciare in bianco. Se la casella e' spuntata, input restituisce un valore al CGI, al contrario non restituisce alcun valore. Value impostato su "yes" significa che di default la casella e' spuntata. Checked controlla lo stato iniziale della casella, all'atto del caricamento della pagina.

ESEMPIO


type="RADIO"


<INPUT type="RADIO" name="giudizio" value="sufficiente">
<INPUT type="RADIO" name="giudizio" value="buono">
<INPUT type="RADIO" name="giudizio" value="ottimo">



Questo attributo ha funzioni simili a quello visto in precedenza, ma presenta piu' scelte possibili. Selezionando una voce tra quelle presenti, qualora abbiano tutte valore "name" identico, si deselezionano automaticamente le altre.

SUFFICIENTE
BUONO
OTTIMO


type="SUBMIT"


<INPUT type="SUBMIT" value="spedisci">


Il classico bottone che invia il form con tutti i suoi contenuti. La grandezza del bottone dipende dalla lunghezza del testo.

ESEMPIO


type="RESET"


<INPUT type="RESET" value="Ricomincia">


Bottone che reimposta l'intero form eliminando i dati inseriti.

ESEMPIO


type="IMAGE"


<INPUT type="IMAGE" src="pulsante.gif">


Funzione simile a quella del tasto "SUBMIT" ma con la differenza che al posto del bottone di default, viene visualizzata un'immagine.

ESEMPIO


TEXTAREA


<TEXTAREA cols=40 rows=5 WRAP="physical" name="commento"></textarea>


Textarea e' utilizzato per commenti o campi che prevedono l'inserimento di molto testo. La larghezza e' impostata da "cols" e l'altezza da "rows". WRAP="physical" stabilisce che qualora il testo inserito superi la larghezza della finestra, venga automaticamente riportato a capo.

ESEMPIO


SELECT


<SELECT size=1 cols=4 NAME="giudizio">
<OPTION selected Value=nessuna>
<OPTION value=buono> Buono
<OPTION value=sufficiente> Sufficiente
<OPTION Value=ottimo> Ottimo
</select>



Select e' un elemento che permette la creazione di elenchi a discesa con varie possibilita' di scelta. Nel nostro esempio abbiamo simulato la richiesta di un giudizio su un sito Web.

ESEMPIO


Come piu' volte sottolineato in questo articolo, l'uso di form HTML da' i migliori risultati quando affiancato da un programma CGI residente su server. Questo non preclude, comunque, la possibilita' di usare form anche senza l'ausilio di un CGI.

Per spedire un modulo usando esclusivamente i comandi messi a disposizione da HTML, si deve inserire un'intestazione simile alla seguente:

<form action="mailto:nome@provider.it" method="post">

Dove a "nome@provider.it" va sostituito il tuo indirizzo e-mail, verso il quale devono essere indirizzati i moduli compilati.

L'inconveniente maggiore di questa scelta e' nella mancata formattazione del contenuto del form; laddove, invece, il CGI agisce in modo molto efficace. Quando un form viene inviato al server, il valore di ciascuno dei controlli corrispondenti è incluso in una singola stringa. Tale stringa è composta da coppie di valori nome-valore ed è delineata da "&" commerciali. Ad essa vengono assegnati tutti i valori degli elementi denominati, in una sorta di concatenamento.

Ecco, di seguito, il confuso risultato di un form nel quale, senza il passaggio per un CGI, sono stati inseriti alcuni dati personali:

Nome=Massimiliano+Valente&E-mail=webmaster@html.it&citta%27=Roma&eta%25

Mentre un CGI avrebbe dato il seguente risultato:

(Nome) Massimiliano Valente

(Email) webmaster@html.it

(Città) Roma

(Età) 25


Se per un modulo molto semplice la "scrematura" del contenuto vero e proprio e' un'operazione rapida, per form lunghi e complessi (e soprattutto numerosi) e' una strada non percorribile e molto poco professionale.

La soluzione preferibile per la creazione di un modulo e' quella che prevede l'uso di un CGI residente su server. A questo punto nasce l'interrogativo su come si imposti ma soprattutto dove si trovino i CGI. Consideriamo nel particolare i singoli casi che possono verificarsi.

Acquisto di un servizio hosting con accesso alla directory CGI-BIN.
Se si acquista uno spazio in hosting presso uno dei tanti fornitori di tali servizi, e' bene chiedere se il pacchetto prevede l'accesso alla directory CGI-BIN. Se la risposta e' affermativa e' possibile scaricare un CGI freeware o shareware da uno dei siti che in seguito elencheremo, impostarlo ed usarlo secondo le proprie esigenze. E' una scelta molto vantaggiosa per coloro i quali hanno conoscenze tecniche sull'argomento, e possono in questo modo scegliere il programma che meglio si adatta alle proprie esigenze.
Il sito italiano più autorevole sui CGI è CGIpoint.

Quando scegliete un CGI fate attenzione alla piattaforma per la quale e' stato creato: Unix o Windows NT. Ad una superficiale analisi delle risorse a disposizione, vi renderete immeditamente conto di quanto sia copiosa la quantita' di materiale per Unix rispetto ad NT.
Tale iniquita' si spiega con la maggior diffusione di Unix presso gli sviluppatori in Perl.

Sottoscrizione di uno spazio Web presso una delle comunita' free-Web space.

A tutt'oggi sono moltissime le comunita' virtuali che offrono spazio gratuitamente, sia in lingua inglese che in lingua italiana. Tali servizi non si limitano piu' al solo spazio e accesso FTP, ma prevedono numerosi servizi supplementari, tra i quali non manca mai un form per guestbook e mail. Non e' questa la sede per approfondire le procedure e le caratteristiche tecniche di tali servizi, per le quali rimandiamo alle pagine istituzionali delle singole comunita'.

Acquisto di un servizio hosting che non consente l'accesso alla directory CGI-BIN, o poca fiducia nei servizi forniti dalle comunita' virtuali.
In questi casi la soluzione migliore consiste nel rivolgersi ad un servizio gratuito di moduli residenti su altro server (quindi che non vanno impostati sul proprio) e disponibili previa sottoscrizione.
Rivolgersi ad un servizio terzo separa l'uso dei moduli da quello del server, col vantaggio, nel caso in cui si cambi server o comunita', di non dover reimpostare il tutto.

Cominciamo col creare un form molto semplice, che richiede il nome, l'indirizzo e-mail e un commento al sito. Per fare questo va inserito il seguente codice:

<FORM ACTION=https://www.coder.com/code/mailform/mailform.pl.cgi METHOD=POST>

<INPUT TYPE=HIDDEN NAME=MAILFORM_ID VALUE="Val_7743">
<INPUT TYPE=HIDDEN NAME=MAILFORM_SUBJECT VALUE="Il mio primo FORM">
<INPUT TYPE=HIDDEN NAME=MAILFORM_URL VALUE="https://www.html.it/risposta.htm">

<B>Nome e cognome</B><BR>
<input type=text NAME=MAILFORM_NAME size=33><BR><BR>

<B>Indirizzo E-mail</B><BR>
<input type=text NAME=MAILFORM_FROM size=33><BR><BR>

<B>Commenti</B><BR>
<TEXTAREA NAME=MAILFORM_TEXT ROWS=10 COLS=42 WRAP></TEXTAREA><BR><BR>

<INPUT TYPE=SUBMIT VALUE="Spedisci"><INPUT TYPE=RESET VALUE="Cancella">

</FORM>


Vediamo insieme i campi da personalizzare e quelli, al contario, da lasciare inalterati per il corretto funzionamento del form.

<FORM ACTION=https://www.coder.com/code/mailform/mailform.pl.cgi METHOD=POST>
Questo campo va lasciato inalterato, in quanto richiama il CGI presente sul server del servizio gratuito che abbiamo in precedenza sottoscritto.

<INPUT TYPE=HIDDEN NAME=MAILFORM_ID VALUE="Val_7743">
Questo campo va modificato solo nel codice identificativo "Val_7743" che va sostituito con quello comunicato via e-mail dal servizio gratuito. Questa semplice produra e' fondamentale perche' il tuo form arrivi nella tua casella di posta e non in quella di qualcun altro.

<INPUT TYPE=HIDDEN NAME=MAILFORM_SUBJECT VALUE="Il mio primo FORM">
Questo campo determina il subject della mail che ti arrivera' via e-mail all'atto della spedizione, con il contenuto del form. A "Il mio primo form" puoi sostituire la frase che ritieni piu' opportuna.

<INPUT TYPE=HIDDEN NAME=MAILFORM_URL VALUE="https://www.html.it/risposta.htm">
Questo campo indica la pagina Web da visualizzare successivamente la pressione del tasto "spedisci". In questo esempio abbiamo inserito un documento presente sul server di HTML.it, al quale puoi sostituire una pagina presente sul tuo server.

<input type=text NAME=MAILFORM_NAME size=33>
Questo campo va lasciato inalterato (non nelle dimensioni, ovviamente) in quanto inserisce nella mail che riceveremo via posta tale nome nel campo del mittente.

<input type=text NAME=MAILFORM_FROM size=33>
Questo campo va lasciato inalterato (non nelle dimensioni, ovviamente) in quanto consente di ottenere nel "reply-to" della mail che il form spedisce, l'indirizzo di colui che ha compilato il modulo.

<INPUT TYPE=SUBMIT VALUE="Spedisci">
Questo campo e' necessario per la spedizione del modulo, ma non si discosta dalle regole generali dei form.

Ecco il risultato che otteniamo con il codice finora esaminato (il form verra' ricevuto da HTML.it, per cui gradiremmo un tuo commento su questo tutorial, cioe' se sia chiaro o dove debba essere migliorato):

Nome e cognome


Indirizzo E-mail


Commenti



Il form visto in precedenza e' molto semplice e prevede solo tre campi.
Questo che segue e' un modulo complesso, che riprende quanto detto nel capitolo "I comandi" di questo tutorial, al quale ti rimandiamo per affrofondimenti sul tema.

Questo il codice:

<FORM ACTION=https://www.coder.com/code/mailform/mailform.pl.cgi METHOD=POST>

<INPUT TYPE=HIDDEN NAME=MAILFORM_ID VALUE="Val_7743">
<INPUT TYPE=HIDDEN NAME=MAILFORM_SUBJECT VALUE="Il mio secondo FORM">
<INPUT TYPE=HIDDEN NAME=MAILFORM_URL VALUE="https://www.html.it/risposta.htm">

<font face=ARIAL>

<table border=0>
<tr><td align=right><B>Nome</B></td><td><input type=text size=33 NAME=MAILFORM_NAME></TD></TR>
<tr><td align=right><B>Home page</B></td><td><input type=text name="home" value="https://" size=33></TD></TR>
<tr><td align=right><B>Indirizzo e-mail</B></td><td><input type=text NAME=MAILFORM_FROM size=33></TD></TR>
<tr><td align=right><B>Città</B></td> <td><input type=text name="citta" size=33></TD></TR>

<tr><td align=right><B>Un giudizio sul tutorial?</B></td>
<td><SELECT size=1 cols=4 NAME="Cosa_pensi">
<OPTION selected Value=nessuna>
<OPTION value=ottimo> Ottimo
<OPTION value=Discreto> Discreto
<OPTION Value=buono> Buono
<OPTION Value=sufficiente> Sufficiente
<OPTION Value=mediocre> Mediocre
<OPTION Value=scarso> Scarso
</select></td></tr>

<tr><td align=right><B>Spiegazioni chiare?</B></td>
<td align=center>
<B>si'</B><input name="chiare" type=radio>
<B>no</B><input name="non_chiare" type=radio>
<B>non so</B><input name="non_so" type=radio>
</td></tr>

</table>

<BR><BR>

<CENTER><table border=0 width=450>

<tr>
<td width=450><B><CENTER>Commenti su HTML.it</CENTER></B></td></tr>
<tr><td colspan=2><textarea cols=58 rows=8 size=200 WRAP=physical></textarea></td></tr>

</table></CENTER>

<BR>

<CENTER>
<INPUT TYPE="SUBMIT" VALUE="Spedisci il form">
</CENTER>
</FORM>

Questo il risultato pratico di quanto finora esaminato:


Nome


Home page


Indirizzo e-mail


Città


Un giudizio sul tutorial?

Spiegazioni chiare?

si' no non so


Commenti su HTML.it





Le mappe cliccabili hanno fatto il loro ingresso nel Web publishing già da molto tempo, fin dalle primissime versione di HTML. Si tratta di elementi molto usati dagli sviluppatori per la facilità d'utilizzo e l'evidente utilità.
Il concetto di mappa cliccabile è semplice e parte da un'altrettanto semplice constatazione: spesso collegare un unico link ad un'intera immagine limita il webdesigner che invece potrebbe linkare diverse pagine sfruttando il singolo gadget grafico. Le mappe cliccabili rimuovono questo limite e consentono, all'interno di una singola immagine, di creare differenti aree di ritaglio, ognuna delle quali con un link diverso. Il concetto fondamentale sul quale si reggono le mappe cliccabili è quelle delle coordinate, che uniche possono indicare al browser punti precisi dell'immagine. Esistono due tipi di mappe, ma prima di passare alla loro esposizione è bene precisare che l'uso di estensioni GIF o JPG è ininfluente e non crea alcuna incompatibilità.

Mappe dal lato server (ISMAP)


Affinchè queste mappe funzionino è necessario che sul tuo server siano presenti le estensioni CGI necessarie. Si tratta di programmi gratuitamente scaricabili in Rete e raccolti da CGIpoint.it.
Le ISMAP, questo il termine tecnico che indica questo genere di mappe, individuano le coordinate dell'immagine attraverso un file esterno. Gli URL creati dalle ISMAP è seguito dal valore delle coordinate x e y, separate da una virgola e precedute da un punto interrogativo. Ecco un esempio:

https://www.html.it/cgi-bin/menu.map?25,55

Questo URL indica che nel punto x=25 e y=55 il link è quello stabilito all'interno della ISMAP.

Mappe dal lato client (USEMAP)


Le mappe da lato server non sono molte diffuse soprattutto per la possibilità di ottenere un risultato del tutto simile con una procedura da lato client. Stiamo introducendo le USEMAP, cioè le mappe che vengono interpretate senza alcun intervento da parte del server. La sintassi corretta che HTML indica per inserire USEMAP in un documento è la seguente:

<IMG SRC="img/home/menu.gif" WIDTH=609 HEIGHT=87 BORDER=0 usemap="#menu">

Dove la prima parte del codice richiama evidentemente l'immagine e ne stabilisce la grandezza; mentre #menu indica il nome del file (con estensione .map) che contiene le informazioni relative alle coordinate. In altre parole le USEMAP non fanno altro che richimare un file esterno che per ogni link dell'immagine indica un relativo URL. Quello che segue è il contenuto di un file con estensione .map (editabile molto semplicemente anche con blocco notes di Win95).
Per comprendere meglio il funzionamento di una USEMAP prendiamo in considerazione l'immagine che segue:



simuliano che la nostra esigenza sia quella di creare tre differenti link d'immagine per ognuno dei tre elementi grafici: la bicicletta, il mouse e i pompieri. Se usassimo un normale ancoraggio d'immagine avremmo un unico link per tutti gli elementi grafici. Usando un USEMAP, al contrario, è possibile creare tre differenti aree di link per ognuna delle immagini.
Il codice così generato viene inserito all'interno dello stesso documento:

<map name="06a">
<area shape="poly" alt="Questa è una bicicletta" coords="69,26,47,25,52,15,31,15,27,19,35,28,37,34,34,39,20,37,12, 44,7,51,5,57,5,65,8,71,9,75,16,79,24,81,31,81,40,79,44,73,50,67, 55,65,65,56,65,66,68,72,73,79,91,84,98,80,110,64,106,53,100,43,87, 37,82,38,75,23,85,24,82,17,68,17,71,25,71,25,71,25,71,25" href="bicicletta.htm" title="Questa è una bicicletta">

<area shape="poly" alt="Questo è un mouse" coords="181,27,172,14,163,10,150,14,136,23,136,34,128,40,123,32,112, 31,115,42,121,52,132,54,139,49,146,38,150,33,152,48,148,64,153,80, 161,82,172,82,180,76,183,53,181,34,181,24,181,25" href="mouse.htm" title="Questo è un mouse">

<area shape="rect" alt="Camion dei pompieri" coords="207,7,279,82" href="pompieri.htm" title="Camion dei pompieri">

<area shape="default" nohref>
</map>


Il codice è contenuto all'interno dei tag MAP, che chiudono e aprono la sintassi. Le tre aree di ritaglio sono generate da altrettanti campi AREA. Esistono tre differenti modi per ritagliare un'immagine:
poly: ritaglia immagini frastagliate attraverso linee rette
rect: ritaglia aree quadrate o rettagolari di 4 lati
circle: ritaglia aree circolari

Nel nostro esempio sono presenti aree di ritaglio poly e rect.
I commenti alle singole aree di ritaglio sono generati dai campi title e alt e fanno in modo che il browser visualizzi testo descrittivo per ogni singola area di link.

Creato il codice è necessario inserire all'interno dell'immagine un riferimento allo stesso. Per fare questo nel nostro esempio abbiamo impostato il seguente codice:

<img src="06a.gif" width=300 height=100 border=0 alt="" usemap="#06a">

La dicitura usemap="#06a" richiama il codice impostato in precedenza ed assegna alle immagini le aree di ritaglio.
Creare delle aree di ritaglio non è affatto semplice se non si dispone di un programma adatto allo scopo che eviti un calcolo manuale. La gran parte degli editor HTML presenti sul mercato prevede generatori automatici di mappe, ed ai file di help di ognuno di essi rimandiamo per un approfondimento ulteriore. Esistono anche programmi esclusivamente dedicati alla creazione di USEMAP, tra questi consigliamo Mapedit: di piccole dimensioni (poco meno di 300kb di file d'installazione) e facile utilizzo. E' un programma shareware in prova per un periodo di 30 giorni e può essere gratuitamente scaricato da questo link:

Scarica Mapedit 2.56




L'affermazione su scala planetaria della Rete quale strumento comunicativo orizzontale ha creato, tra gli altri, l'inedita figura dell'utente programmatore. A chi scrive non sfugge la differenza tra l'HTML e i veri e propri linguaggi di programmazione (VB, Java e altri), ma il punto che preme sottolineare e' l'affermazione di un utente attivo e "propositivo", che non si limita a raccogliere informazioni, ma a proporre piccoli o grandi contenuti verso la comunità.
Questo sviluppo rivoluzionario della distribuzione di informazioni è in massima parte dovuto alle peculiarità del nuovo media Internet, ma anche alla semplicità con cui è possibile creare documenti per il Web. Ovvio che si stia parlando di HTML che dal 1989 regge ininterrottamente le sorti del Web.

L'HTML ha avuto, ed ha, uno sviluppo impetuoso e per molti versi simile a quello di internet. Uno sviluppo che si è cercato di regolare per la prima volta nel novembre del 1995, con la definizione da parte dell'Internet Engineering Task Force (IETF) dell'HTML 2.0. Questa prima versione ufficiale nacque già sorpassata dallo sviluppo di questo linguaggio, tanto da non tenere in conto le tabelle, che i browser presenti sul mercato avevano già adottato da tempo. Nel marzo del 1995 il W3C (World Wide Web Consortium) iniziò a lavorare su una versione 3.0 destinata ad apportare numerose e fondamentali modifiche alla versione precedente. Ma il W3C si trovò ad operare mentre Microsoft e Netscape rilasciavano versioni dei rispettivi browser contenenti nuovi tags i quali, in ultima analisi, rendevano impossibile la definizione di uno standard. Così il W3C abbandonò la stesura della versione 3.0 per passare direttamente alla 3.2. Il risultato, a dire il vero, non fu certo dei più esaltanti. Le maggiori novità della versione 3.2 sono state: le tabelle, i font colorati, gli applet java, i tag superscript e subscript e le Client Side Image. Come si vede, tutti elementi da tempo supportati dai browser e adottati dai webmaster per la creazione di siti internet.

Ripercorrendo la storia dell'HTML, quindi, è di tutta evidenza il gap tra ciò che le "istituzioni ufficiali" stabiliscono come standard, e ciò che in realtà avviene nel web. Questa situazione è imputabile, da un lato alle strategie commerciali dei due grandi concorrenti (MS e Netscape), dall'altro alla genetica "frenesia" della rete. Questa sorta di "doppia velocità" non ha finora permesso la definizione di uno standard per l'HTML. Non è infrequente che i due browser principali adottino, per generare uno stesso effetto, comandi diversi ed incompatibili; a danno, è ovvio affermarlo, dei webmaster che si trovano a fare una scelta di campo tra uno dei due prodotti.

Il W3C si è impegnato a definire ufficialmente il nuovo standard (in fase di studio chiamato "Cougar"), finalmente espresso nel "W3C Proposed Recommendation".
E' nato quindi l'HTML 4.0 con propositi e prospettive diverse dai precedenti tentativi. A differenza del passato sia Netscape che Microsoft si sono impegnate ad implementare i lavori del W3C, e soprattutto ad accettarne i risultati rendendo i propri browser compatibili.
E' bene ricordare che il W3C è un consorzio formato da: Adobe, Hewlett Packard, IBM, Microsoft, Netscape, Novell, SoftQuad e Sun Microsystems.

L'HTML 4.0 segna il definitivo avvicinamento al Dynamic HTML, ma non è certo questa l'unica importante innovazione:

Caratteri

E' stato adottato il set di caratteri ISO/IEC:10646, che include qualsiasi tipo di carattere in qualsiasi lingua. Ciò vuol dire che il W3C ha tenuto conto dello sviluppo planetario del web, e che sarà possibile inserire in una stessa pagina idiomi o caratteri di lingua differenti; che oggi genererebbero soltanto incomprensibile testo "impazzito".

Accessibilità

HTML 4.0 tiene conto delle limitazione incontrate dai portatori di handicap, e prevede diversi strumenti per facilitarne l'accesso a documenti iperstestuali:

  • distinzione tra struttura base e contenuto di un documento attraverso i fogli di stile;
  • tabelle che prevedono la possibilita' di accedere ai non vedenti;
  • form che permettono di essere selezionati attraverso tasti di scelta rapida;
  • mappe cliccabili che possono visualizzare testo in alternativa alle immagini;
  • supporto dei comandi title e lang per tutti gli elementi;
  • descrizioni lunghe per tabelle, immagini, frames ecc.;
  • supporto degli elementi ABBR e ACRONYM;
  • possibilita' di usare, all'interno di fogli di stile, linguaggi di comunicazione quali tty, braille ed altri.

    Object

    Nell'HTML 4.0 potranno essere inseriti elementi eseguibili e multimediali, per fare questo il marcatore OBJECT sostituirà gli attuali IMG e APPLET. Questo marcatore omnicomprensivo permette di includere immagini, video, suoni e programmi esecutivi nel documento, attraverso una tecnica gerarchica per specificare varie alternative in base all'ambiente in cui si trova ad operare il browser dell'utente.
    Facendo un esempio riguardo il marcatore OBJECT e la sua caratteristica di generare alternative, verra' di seguito riportato un codice che tenta di visualizzare in alternativa (1) un applet che genera l'immagine animata di una bandiera sventolante; la stessa animazione in formato Mpeg (2), ed infine un'immagine fissa JPG della bandiera:

    <OBJECT title="Una bandiera" classid="java:Flag.class" width="300" height="200">
    <OBJECT data="flag.mpeg" type application/mpeg">
    <OBJECT src="flag.jpg">

    <FONT SIZE=4>Una bandiera</FONT>

    </OBJECT>
    </OBJECT>
    </OBJECT>


    Fogli di stile

    L'HTML è stato progettato per gestire singole pagine. Se ciò ha generato la definizione di un linguaggio semplice e diretto, non è più aderente alle necessità di siti spesso composti da migliaia di pagine. A questo si affianca il problema incontrato dai grafici professionisti riguardo la difficoltà di posizionamento all'interno del documento di immagini e testo.
    A queste problematiche HTML 4.0 cerca di far fronte adottando i fogli di stile, i quali possono essere inseriti all'interno di un documento iperstestuale in tre modi:
  • attraverso un file esterno;
  • attraverso l'intenstazione generale di ogni singolo documento;
  • o, finalmente, attraverso la specifica degli attributi nel singolo TAG.

    Sfruttando i fogli di stile è possibile modificare la struttura di diverse pagine agendo su un unico file esterno che ne determina l'aspetto.
    I fogli di stile sono destinati a sostituire l'abitudine, sempre più frequente, di layout di pagina creati attraverso strumenti impropri quali le tabelle.
    La marcatura HTML dovrà, quindi, tornare alla sua originaria funzione di definizione della struttura logica del documento, lasciando ai fogli di stile la gestione del layout di pagina.
    I fogli di stile non necessariamente debbono essere HTML. Alcuni linguaggi specializzati come il CSS (Cascading Style Sheets) permettono di riunire direttive di stile provenienti da fonti diverse, facendo prevalere le une alle altre in base alle scelte del webmaster.

    Tabelle

    Il modello definitivo di tabelle dell'HTML 4.0 riprende la prima stesura dell'HTML+. Il modello precedente è stato esteso rispondendo a requisiti di controllo nella presentazione dati, richiesti dalle nuove necessità della rete.
    HTML 4.0 permette un notevole controllo sulle tabelle (basate su RFC1942), che sono esclusivamente orientate alla presentazione dati, e non, come avviene attualmente, alla definizione del layout di pagina.
    E' stato introdotto, tra le altre cose, il nuovo elemento COLGROUP che permette di creare gruppi di colonne, specificandone allianeamento e larghezza.
    Nello specifico, riprendendo quanto ufficialmente riportato nel W3C Proposed Recommendation, le più importanti innovazione alle tabelle sono:
  • possibilità di allineamento per caratteri indicati come "." e ":" (per esempio, sarà possibile allineare una colonna di numeri sul punto decimale);
  • introduzione di maggior flessibilà;
  • possibilità di ottenere tabelle scorrevoli con testate fisse, più un supporto adeguato per le tabelle interrotte durante le pagine di stampa;
  • semplificare le tabelle importate per adeguarsi al modello SGML CALS. L'ultima stesura fa sì che l'attributo sia compatibile con le ultime versioni dei più popolari browsers;
  • è stato introdotto un nuovo elemento che permette di ragruppare una serie di colonne con larghezza e proprietà di allineamento differenti da uno o più elementi, e rules="basic" è stato sostituito da rules="groups".

    Form

    Sono stati introdotti nuovi attributi destinati a risolvere le lacune dell'HTML 3.2:

    l'attributo accesskey provede di specificare un accesso diretto tramite tastiera ai campi del formulario;
  • con readonly, un attributo supplementare, i webmaster possono vietare i cambiamenti ai campi del form;
  • l'elemento LABEL aggiunge un'etichetta con un particolare form di controllo.
    L'elemento FIELDSET raggruppa campi in relazione fra di loro e, in associazione con l'elemento LEGEND, può essere usato per nominare il gruppo. Entrambi questi nuovi elementi, permettono una migliore interpretazione e interazione;
  • una nuova serie di attributi onchange-INPUT, in associazione con il supporto per i linguaggi script, permette ai form dei providers di verificare i dati inseriti dall'utente;
  • l'elemento INPUT ha un nuovo attributo accept che permette agli autori di specificare una lista di media o tipi di struttura per l'input;
  • il nuovo elemento BUTTON può essere usato per arricchire i forms in modo diverso oltre ai classici "submit" e "reset".

    Scripting

    HTML 4.0 prevede la possibilità di associare script ai form, in modo da generare una maggior interattività con l'utente, senza per questo doversi servire di complesse applicazioni java.

    Stampa

    HTML 4.0 permette di stampare pagine web senza per questo ottenere una pura e semplice riproduzione della pagina, tout court. Il programmatore HTML 4.0 ha la possibilità di definire ciò che verrà stampato, e come verrà stampato, quando l'utente farà click sul pulsante "Stampa" del proprio browser.

    Modiche degli elementi rispetto a HTML 3.2

    I nuovi elementi dell'HTML 4.0 sono:
    Q, INS, DEL, ACRONYM, LEGEND, COLGROUP, BUTTON, e FIELDSET

    Gli elementi disapprovati:
    ISINDEX, APPLET, CENTER, FONT, BASEFONT, STRIKE, S, U, DIR, e MENU

    Gli elementi ritenuti obsoleti:
    XMP, PLAINTEXT, and LISTING
    al posto dei quali va usato esclusivamente il comando PRE


In ultima analisi, secondo chi scrive, HTML 4.0 risponde pienamente alle esigenze attuali della rete, anche grazie all'impegno e alla buona volontà dimostrata dai partecipanti al W3C.
Attualmente HTML 4.0 rappresenta un valido punto di riferimento per i webmaster che, a differenza del passato, possono ora riferirsi ad uno standard avanzato e non anacronistico.







Privacy




Articolo informazione


Hits: 2532
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024