1- I FONDAMENTI DELL’HTML
Carissimi lettori di TGM, buongiorno! E benvenuti a questo
informale, inusuale, oseremmo addirittura dire isterico corso di
programmazione HTML. Cos'ha di diverso questo corso da tutti gli
altri? Il primo Φ che a spiegarvi le cose sar≥ io, per cui se
vi aspettate il solito polpettone teorico siete fuori rotta:
preparatevi a prendere in mano tutto l'occorrente, che qui si fa
solo della buona e sana pratica. Poi preparatevi anche a una
simpatica novitα: non ho nessunissima intenzione di ripetere le
solite frasi fatte del tipo: "se scrivete
<b>pippo</b> otterrete pippo in grassetto",
perchΘ immagino ne abbiate piene le scatole pure voi: per Diana,
un corso si pu≥ tenere anche senza un tono da funerale, vi pare?
In ultima analisi, lungo andare vi porr≥ dei quesiti - dei veri
e propri compiti a casa - ma siccome non posso verificare che li
svolgiate, mi limiter≥ a consigliarvelo per il vostro bene: in
fondo i fruitori di queste lezioni siete voi, senza esercizio in
HTML non si programma, quindi buon divertimento!
OCCORRENTE
Gl'ingredienti per confezionare la vostra torta virtuale sono
pochi, ma buoni. Ecco cosa serve:
- n1 cervello
- n1 editor di testi (va bene anche il notepad di Windows, ma un
programma come Hot Dog Φ vivamente consigliato)
- n2 browser: installate sia Netscape sia Explorer
- n1 connessione a Internet (opzionale)
Il cervello Φ necessario perchΘ purtroppo in HTML non esiste il
tag (comando) <crea_pagina_a_mia_immagine_e_somiglianza>,
per cui dovrete per forza di cose sforzarvi a capire cosa fa ogni
singolo comando, e come farglielo fare in modo che, interagendo
con tutti gli altri comandi l∞ vicino, possa ricreare a video
esattamente ci≥ che volete. L'HTML infatti Φ una brutta bestia:
Φ facilissimo da imparare, ma non esistono discorsi teorici
validi. Voi date il comando, ma poi Φ compito del browser
interpretarlo come meglio crede. Per capirci meglio: voi cucinate
la vostra buonissima torta al limone, ma il palato di chi la
mangerα potrebbe sentire un gusto di pera piuttosto che di
melanzana. Ecco perchΘ vi chiedo d'installare entrambi i browser
sul vostro computer: per poter toccare con mano, senza aspettarsi
delle sorprese, ci≥ che leggeranno i visitatori del vostro sito.
Purtroppo le differenze tra le cosiddette "estensioni"
di Netscape e Internet Explorer sono tutt'altro che minimali, e
non ci sono santi che tengano: se volete mettere su un bel sito
dovete per forza conoscerle entrambe, e sopperire dove possibile
alle carenze delle une con un uso sapiente delle altre.
Primo discorso da evitare: "Ma tanto il Netscape Φ il
browser pi∙ diffuso, la Microsoft mi sta sulle balle, e chi non
lo usa s'attacca"
Purtroppo in giro ci sono tantissimi frollocconi che si divertono
a parteggiare per questo o quel browser: li trovate in linea con
tanto di logo "best viewed with Pippero", che
solitamente Φ l'unica cosa che si legge bene in quella pagina
ANCHE col vostro browser preferito. Il primo impulso Φ sempre
quello di spedire una caterva d'insulti al webmaster cliccando
sull'apposito link "for problems contact
stupidone@casa.sua.com", ma poi alla comparsa del client
mail solitamente si desiste, in fondo si ha altro da fare. Per
esempio, imparare a non fare lo stesso errore. Una pagina
dev'essere fruibile a tutti, tanto pi∙ che tra i tutti potrebbe
esserci il responsabile di qualche sito molto visitato che,
magari, potrebbe trovare la vostra pagina piacevole e
interessante e, perchΘ no, degna di essere "linkata":
senza colpo ferire, vi trovereste un sacco di accessi in pi∙.
Senza aggiungere, poi, che tra i tanti utenti potrebbe sempre
nascondersi l'ultimo utente di questo o quel browser
semisconosciuto, o di una versione troppo vecchia dei due
"caposaldi". Per loro, preparate sempre un bel link
alla Microsoft e alla Netscape, con scritto "se avete una
versione troppo vecchia del vostro browser, scaricatene una pi∙
recente. Questo sito Φ ottimizzato per le versioni X di IE e
NN". Attualmente, il valore di X pu≥ assumere i seguenti
connotati:
X=1: siete proprio dei blandoni, e desiderate che il vostro sito
contenga solo testo e qualche immagine. In tal caso non caricate
la pagina di effetti speciali e attenetevi scrupolosamente alle
poche norme dell'HTML 2.0, visualizzabili persino con Mosaic e
Tiber.
X=2: potete giα inserire delle GIF trasparenti, ma non potrete
usare i frames (quelle tag che suddividono la finestra del
browser in due o pi∙ parti, per visualizzare all'interno di esse
pagine diverse) nΘ le tabelle con fondo colorato: i primi non
sono visualizzabili da Internet Explorer 2, le seconde da
Netscape 2.0.
X=3: potete fare tutto ci≥ che sarα oggetto di questo corso. E'
la scelta che pi∙ vi consiglio visto che i nuovi browser, oltre
che a fornire un'impaginazione quantomai precisa, sono diventati
delle vere e proprie multipiattaforme. Possono integrare video,
suoni, e applicazioni, permettono di svolgere azioni su un server
da remoto e... e poi lo dico io, e basta!
UN BREVE RIPASSO
Veniamo cos∞ alle finalitα di questa bislacca fiumana di
parole: mettervi in grado di confezionare un bel sito, con tanta
bella grafica e con un occhio sempre puntato ai problemi di
connessione. Nel frattempo, vogliate gradire un breve ripasso.
Innanzitutto, l'HTML Φ un "metalinguaggio", nel senso
che non Φ un linguaggio di programmazione vero e proprio, non si
preoccupa di fornire script (al massimo quelli dovrete inserirli
voi, se volete programmare in Java o con ActiveX), ma si basa
solo e unicamente su indicazioni, dette "tag", atte a
visualizzare del testo o a delimitare dei campi. E' incredibile
come queste poche istruzioni, rigorosamente delimitate da apici
< e >, possano generare veri e propri capolavori
d'impaginazione, roba che per farlo sulla nostra rivista abbiamo
bisogno di programmi costosi tipo Quark-Xpress e di un grafico
professionista pagato apposta! Con l'HTML invece il grafico
potrete farlo voi, comodamente a casa vostra, e senza pagare una
lira (a parte quelle che, naturalmente, dovrete sborsare per la
rivista: e insomma, nulla Φ proprio gratuito!). Le istruzioni
vanno solitamente "aperte" e "chiuse" alla
bisogna, cioΦ la porzione di testo interessata a questo o a
quell'effetto, va delimitata tra <istuzione> e
</istruzione>, dove la barra / serve appunto a dire al
browser "smetti di visualizzare in quel modo". Vogliamo
fare un esempio? E allora, vamos!
Prendete l'editor di testi, create un documento di testo nuovo e
scrivete:
<HTML>
<HEAD>
<TITLE>File di prova</TITLE>
</HEAD>
<BODY>
</BODY>
<HTML>
E salvatelo come "base.htm". Questo file sarα proprio
il punto di partenza su cui svilupperemo tutto il corso. Il primo
tag avvisa il nostro browser che quello che si troverα di fronte
sarα un file HTML generico, senza specificare a che tipo di
standard vorrα attenersi. Il secondo e il quinto delimitano
l'intestazione (head) del documento, mentre i tag titolo (title)
avvisano il browser che quello sarα il nome della pagina, da
scrivere sulla barra, appunto, del titolo. La vostra finestra di
Netscape si aprirα infatti con un bel "Netscape - File di
prova". Terminata l'intestazione, inizia il corpo del
documento, che non a caso Φ delimitato dalla coppia di tag body
(in inglese, corpo). Tutte le modifiche e le aggiunte che andremo
a fare, le faremo tra i tag <body> e </body>.
Leggetela bene la frase che precede, perchΘ se qualcuno mi
telefona in Redazione chiedendomi "perchΘ io aggiungo le
istruzioni alla fine del documento, e il browser non me le
visualizza?", gli strappo le unghie personalmente. Ripeto:
tutto, e sottolineo TUTTO ci≥ che segue, andrα aggiunto e/o
sostituito SOLO ed ESCLUSIVAMENTE tra i tag corpo. Chiaro? Altro
barbatrucco: ricordatevi che quando modificate una pagina per poi
farla visualizzare al browser, dovete sempre salvarla e che, solo
allora, dovrete premere il pulsante "aggiorna" (che
tutti i broswer hanno) per far s∞ che il medesimo la ricarichi
da capo senza ricorrere alla sua cache (memoria tampone).
Bene, ora che avete capito tutto, provate a inserire la stringa:
esempio 1: questa
è una prova di testo in <b>grassetto</b>,
<i>corsivo</i>, <b><i>Grassetto
corsivo</i></b>, <u>sottolineato</u>,
<blink>lampeggiante</blink> e <kbd>con effetto
macchina da scrivere</kbd><br>
Il risultato dovrebbe essere, per l'appunto, una frase scritta
con gli stili in questione. Abbiamo dunque imparato un po' di
cose. Tanto per cominciare, che il carattere "Φ" non
potete scriverlo cos∞, ma dovete usare una speciale codifica
HTML, "è", appunto. Questo perchΘ tutti i
computer della terra, compreso il Commodore 64 se solo si potesse
attaccare a Internet, capiscono una codifica standard a 7 bit
chiamata ASCII-7. Nei 128 (2 elevato a 7 dα 128) caratteri
permessi dalla "tabella" in questione, i cratteri
accentati e speciali sono esclusi. Questo vuol dire che sul
vostro PC potete anche scrivere "la pasta Φ buona", e
il vostro browser la visualizzerα anche giusta, ma potete stare
certi che in un altro paese - dove si adotta una tabella di
codici diversi - quella frase diventerα, che so, "la pasta
º buona", oppure, restando nel nostro paese, un utente
Macintosh potrebbe leggerla "la pasta [] buona", o
ancora... Potreste essere tentati di scrivere "la pasta e'
buona", ma a parte che starebbe male, anche l'apostrofo Φ
un carattere speciale. Quindi, l'unico modo per essere sicuri che
la pasta sia buona dappertutto, Φ proprio quello di usare la
codifica internazionale HTML per i caratteri speciali. Una lista
dei medesimi occuperebbe un'intera pagina di TGM, per cui vi
conviene procurarvela altrove. Altra esigenza specifica, Φ che
scrivere un testo lungo in questo modo sarebbe straziante, per
cui serve un editor di testi in grado di convertire
istantaneamente le accentate in codici HTML: Hot Dog Φ proprio
il programma che ci serve. Procurarselo su Internet Φ una
stupidaggine (basta inserire Hot Dog in qualsiasi motore di
ricerca), quindi sprecate pure dieci minuti di tempo di
connessione e installatelo sul vostro hard disk. Probabilmente
Hot Dog non effettuerα la conversione subito, ma sicuramente
esiste l'opzione per attivarla. Lo so perchΘ Φ l'editor che usavo
io per impaginare Zzap!.
La seconda cosa che abbiamo imparato, invece Φ che i tag possono
"inscatolarsi" gli uni negli altri. E ovviamente vanno
aperti e chiusi in successione inversa, come avviene per le
parentesi. Mi spiego meglio: se a scuola aveste scritto una cosa
del tipo "[x+(16-x]*4)", la vostra professoressa di
matematica probabilmente vi avrebbe strappato tutte le unghie e
terminati all'istante, previo uno zero spaccato sul diario. Il
browser Φ molto pi∙ gentile: si limita a non visualizzare ci≥
che "sgarra" dalle specifiche del linguaggio. Vale
quindi il discorso <b><i>...</i></b>, ma
non quello <b><i></b></i>. Pu≥ darsi che
il vostro browser sia magnanimo e "passi sopra", ma non
Φ detto che tutti lo facciano, e, comunque, ci sarebbe un errore
di principio che andrebbe assolutamente corretto. Potete
naturalmente scrivere anche <i><b>grassetto e
corsivo, </b>solo corsivo</i>: basta che i tag non si
sovrappongano in maniera scorretta. Ah, dimenticavo: i tag B
indicano il bold (grassetto), il tag I l'italic (corsivo), e...
no, mi rifiuto, il cervello ce l'avete pure voi, usatelo!
Dimenticavo: il <br> alla fine indica al browser che la
riga Φ finita, e che desiderate che vada a capo (dovrebbe stare
per "break"). Se invece volete fare i precisini,
ricordatevi di delineare i paragrafi a inizio e fine con
<P> e </P>. Occhio perchΘ un uso errato di
<br> e di <P> pu≥ notevolmente incasinare la vostra
pagina.
COLLEGAMENTI
I collegamenti ipertestuali, detti originariamente link, sono
l'anima del cyberspazio: potete cioΦ saltare all'interno del
medesimo documento, aprirne un altro o, addirittura, puntare
direttamente ad un paragrafo che si trova non solo su un altro
file, ma addirittura su un server lontanissimo. Tutto questo
grazie alla coppia di tag A (anchor, ancora). Facciamo un
esempio: sul server http://www.casa.mia c'Φ un documento
"piantina.html" cos∞ strutturato:
Benvenuti a casa
mia!<br>
Qui potete trovare:<br>
<br>
cucina<br>
gas<br>
tavola<br>
tovaglia<br>
lavastoviglie<br>
mestolone<br>
bagno<br>
bidet<br>
lavandino<br>
doccia<br>
tazza<br>
camera da letto<br>
comodino<br>
letto<br>
preservativi<br>
com≥<br>
ecc ecc ecc
Bene, immaginiamo che io adesso voglia, dal sito in cui mi trovo,
visualizzare immediatamente il contenuto della mia camera da
letto, che so trovarsi sul server remoto in questione. Come
dovr≥ fare? Innanzitutto, dovr≥ assicurarmi che il file
"piantina.html" presso www.casa.mia, sia strutturato
"a paragrafi", cioΦ che ogni paragrafo sia delimitato
da un "nome" specifico che ne contraddistingua l'inizio
in modo inequivocabile. Questo, in HTML si ottiene col tag <A
NAME= "paragrafo"></A>. Quindi la porzione di
testo di cui sopra dovrα iniziare cos∞:
... ...
<A NAME= "camera"></A>
camera da letto
comodino
letto
preservativi
com≥
... ...
Cos∞ facendo, dir≥ al browser che quella parte di documento ha
un delimitatore iniziale e che ha un nome specifico,
"camera", per l'appunto. Ora, torniamo a bomba sul
nostro documento locale, e vediamo come collegarci a
"piantina.html" in modo opportuno. Inserite:
Volete vedere camera mia? Cliccate <A HREF=
"http://www.casa.mia/piantina.html#camera"> QUI
</A> per vederla.
Il tag <A HREF></A> assocerα alla parola QUI un
collegamento ipertestuale al paragrafo camera (#camera), sul file
"piantina.html" che si trova sul server www.casa.mia.
Facile, no? Ora, mettiamo invece che il file piantina.html si
trovi sul NOSTRO computer e noi ci stiamo lavorando sopra.
Vogliamo iniziare il documento con un "ingresso
guidato" alla nostra casa. Come effettuare i collegamenti?
Semplicemente saltando direttamente al paragrafo che c'interessa,
esempio:
<b>Ecco i locali
della mia casa</b><br>
<ul>
<li><A href= "#cucina"> la cucina</A>
<li><A href= "#bagno"> il bagno</A>
<li><A href= "#camera"> La camera da
letto</A>
</ul>
<hr>
<A name= "cucina"></A><br>
cucina<br>
gas<br>
tavola<br>
tovaglia<br>
lavastoviglie<br>
mestolone<br>
<A name= "bagno"></A><br>
bagno<br>
bidet<br>
lavandino<br>
doccia<br>
tazza<br>
<A name= "camera"></A><br>
camera da letto<br>
comodino<br>
letto<br>
preservativi<br>
com≥<br>
ecc ecc ecc
come vedete, nulla di pi∙ facile: i rimandi A HREF puntano tutti
a riferimenti A NAME, mi raccomando non dimenticatevi che
l'asterisco # va messo nell'A HREF e non nell'A NAME, altrimenti
non funziona proprio niente. Ricordatevi anche che l'attributo di
A NAME non viene visualizzato dal browser, ma usato solamente
come "informazione interna". La coppia di tag UL e LI
serve rispettivamente a creare una lista non ordinata (con
elementi delimitati da un pallino) e a distinguere tra loro gli
elementi della lista. Se avessimo voluto mettere una lista
ordinata, cioΦ con elementi elencati progressivamente in numeri
cardinali, avremmo dovuto usare <OL> e </OL> al posto
di <UL> e </UL>. Si noti anche che la maggior parte
dei tag non sono case sentisitive, cioΦ possono essere scritti
indifferentemente in caratteri piccoli o in lettere maiuscole. I
riferimenti di tipo HREF possono essere a loro volta di vario
tipo:
<A HREF=
"http://www.vostro.server/file.xxx">
punta a un file: se si tratta di un tipo di file riconosciuto dal
vostro browser o associato a un programma esterno, lo visualizza
direttamente, altrimenti lo salva su disco in attesa di essere
utilizzato offline dall'utente.
<A HREF=
"ftp://ftp.vostro.server/percorso/file.xxx">
preleva tramite protocollo ftp il programma file.xxx che si trova
sul vostro server presso il percorso specificato. Se ad esempio
vogliamo che l'utente possa prelevare da ftp.funet.fi l'ipotetico
file desiderio.zip che si trova in /pub/msdos/games/ (ricordatevi
SEMPRE che non si devono usare le backslash del DOS \, ma quelle
standard di UNIX e Amiga /), dovreste scrivere qualcosa del tipo:
"preleva <A HREF=
"ftp://ftp.funet.fi/pub/msdos/games/desiderio.zip">
desiderio </A>".
<A HREF=
"mailto:qualcuno@suo.indirizzo.email">
Apre il client mail per spedire una lettera
all'indirizzo specificato. Se per esempio volessi farmi spedire
qualcosa, io dovrei inserire: <A HREF=
"mailto:paolone@digibank.it"> Clicca qui per
mandarmi i tuoi insulti </A>.
Questi sono i riferimenti pi∙ comuni, Φ possibile che nel corso
dei mesi ne usciranno sempre di nuovi. Tenete poi presente una
cosa, soprattutto quelli di voi che non hanno mai visto Unix in
vita loro: i sistemi operativi seri sono case-sensitive, cioΦ
distinguono le lettere minuscole da quelle maiuscole. Questo vuol
dire che se il vostro provider usa un server su cui gira Unix, e
voi volete metterci una pagina sopra, dovrete scrivere
CORRETTAMENTE tutti i nomi dei file, altrimenti combinate solo un
bel macello. Per capirci meglio, in dos potete chiamare il file
"pippo.zip" in tutti i modi che volete:
"PiPPo.ZiP", "PIPPO.ZIP", ecc ecc. In Unix
no: pippo.zip sarα una cosa, e PIPPO.ZIP tutta un'altra. Altro
trucco del mestiere: potrebbe darsi che un giorno voi scriviate
qualcosa del tipo:
cliccate <A HREF= "prrrrt.wav"> QUI </A>
per sentire una bella pernacchia.
E che il file prrrrt.wav si trovi esattamente nella stessa
directory della pagina HTML su cui compare la succitata riga. Voi
cliccate l∞ per sentire la pernacchia, ma il computer risponde
con un bel "Object not found". Ma che strano: il file
prrrrt.wav Φ proprio l∞! PerchΘ non lo trova? Niente panico:
senza addentrarci sui problemi di configurazione dei sistemi
operativi, diciamo solo che basta precedere il nome dei file da
"./": questi due caratteri infatti dicono al computer
di cercare solo ed esclusivamente nella directory corrente il
file da caricare. Modificate cioΦ la stringa di cui sopra in
cliccate <A HREF= "./prrrrt.wav"> QUI </A>
per sentire una bella pernacchia.
Potrα sembrare una stupidaggine, ma io stesso quando ero
agl'inizi (praticamente sei mesi fa) ci sono stato sopra a
piangere per una buona mezzora.
IMMAGINI
Mettiamo che adesso vogliate fare un simpatico scherzone a vostra
sorella, magari mettendo a disposizione di 50.000.000 di utenti
di Internet una sua fotografia in pantofole, appena sveglia, con
due occhiaie cos∞ e i capelli scarruffati. Come fare? Beh,
saltiamo pure tutta la problematica che vi serve lo scanner per
digitalizzare la foto e via dicendo, e supponiamo pure che la
foto ce l'abbiate, che sia in formato JPeG (su internet vanno per
la maggiore il GIF e il JPG, se non sapete cosa sono...
installate il Paint Shop Pro e imparatelo!), e che si chiami
"racchia.jpg". Come inserirla? Vediamo.
Il comando che va a cercare un file immagine Φ innanzitutto
<IMG>, uno dei pochi tag che non ha bisogno di una
negazione finale (/) per dire al browser che il comando medesimo
Φ finito. Adesso non Φ che se scrivete <IMG racchia.jpg>
avete risolto il problema, anzi, lasciatemi per≥ dire che l'uso
delle immagini in HTML sia quanto di pi∙ semplice ci possa
essere. Voi gli date tutti i parametri di cui ha bisogno, e l'IMG
fa tutto il resto.
Tanto per cominciare, bisogna comunicargli che deve andare a
cercarsi il file da visualizzare, e questo lo si fa con
l'attributo SRC. Per tanto dovremo scrivere <IMG SRC=
"racchia.jpg">, e solo a questo punto la sorellina
inizierα a terrorizzare anche chi viene a visitare il vostro
sito. Ma per ottenere un effetto dolorifico maggiore, cosa
bisogna fare? Beh, per esempio aggiungendo un bordo, e questo lo
sia fa con l'attributo BORDER. Assegnandolo, il browser
disegnerα attorno all'immagine specificata da SRC una cornice di
tanti pixel quanti ne vorremo. Volete l'esempio? Eccovelo!
<CENTER>
Questa ragazza in cornice<br>
<IMG SRC= "racchia.jpg" BORDER=
"5"><br>
è mia sorella appena sveglia<br>
</CENTER>
Se invece preferite che la foto stia a sinistra e il testo le
scorra a destra, potete anche aggiungere l'attributo ALIGN, che
stabilisce l'allineamento. In questo caso, dovrete assegnargli un
valore "left". L'esempio di cui sopra diventerebbe:
<IMG SRC= "racchia.jpg" BORDER= "5" ALIGN=
"left">
Questa ragazza in cornice è mia sorella appena
sveglia<br>
Ovvio che se invece di left inseriste "right" il
risultato sarebbe diametralmente opposto: scritte a sinistra e
foto a destra. Esistono poi altri valori assegnabili ad ALIGN,
che sono "top", "middle" e
"center". Questi per≥ stabiliscono il punto esatto in
cui il browser deve allienare il testo che segue la foto. Inutile
che adesso io stia qui a fare migliaia di esempi: tocca solamente
a voi provare, l'HTML Φ poca teoria e tutta pratica.
Vogliamo farla una cosa difficile adesso? Meglio di no? Allora
terminiamo qui la lezione di questo numero dicendo che anche le
foto possono essere linkate ad altri documenti, siano essi http,
ftp, ecc ecc. Per esempio: siete sempre intenzionati a fare lo
scherzo a vostra sorella, ma avete pietα dei vostri lettori, per
cui intendete lasciare loro la possibilitα di decidere se Φ il
caso di vederla o meno? Niente di pi∙ facile: procuratevi una
foto decente della stessa, chiamatela "decente.jpg" e
poi scrivete:
<CENTER>
Questa è una voto decente di mia sorella:<br>
<A HREF= "racchia.jpg"> <IMG SRC=
"decente.jpg" BORDER=0> </A><br>
Ma se ci cliccate sopra la vedrete senza trucco!<br>
</CENTER>
Tutto questo cosa fa? Semplice, va a prendere l'immagine
decente.jpg e la visualizza al posto di quella brutta, e poi
inserisce un hyperlink (imparate a usare anche i termini inglesi,
mi raccomando) verso l'immagine racchia.jpg che purtroppo
conosciamo tutti bene. Ho specificato BORDER=0 per evitare che il
browser inserisca di suo una cornice, metodo solitamente
utilizzato per distinguere un'immagine fissa da una linkata a
qualcos'altro.
Bom, e con questo Φ proprio tutto, alla prossima!!!