Guida base al linguaggio HTML Introduzione Al giorno d'oggi esistono decine di software di impaginazione HTML che permettono di fare velocemente dei siti web ottenendo dei buoni risultati, ma quando ci si cimenta con un progetto web più impegnativo, o si vogliono ottenere risultati particolari, allora bisogna intervenire direttamente nel codice HTML in quanto gli editor WYSIWYG (sigla che sta per "What You See Is What You Get", che tradotto sarebbe "quel che vedi è quel che ottieni", cioè quei programmi che permettono di disegnare tabelle, scrivere testi, scegliere colori, e che poi generano il codice HTML), di solito non permettono una gestione totale e completa sul codice, ma spesso e volentieri prendono decisioni diverse a discapito dell'utente che li utilizza, dando risultati differenti da quel che ci si e' prefissi, quindi a volte è necessario scrivere di proprio pugno intere sezioni di una pagina HTML affinchè il risultato sia davvero conforme a quel che vogliamo. D'altro canto, fino a qualche anno fa, non esistevano editor HTML avanzati come ai giorni nostri e tutte le pagine visibili sul web si scrivevano completamente a mano utilizzando il "Blocco Note" di Windows o altri editor testuali; le persone che hanno fatto questo percorso hanno, al giorno d'oggi, sicuramente una marcia in più, nello sviluppo web, rispetto a chi si affida completamente ai vari editor HTML senza conoscere il codice che sta sotto alle proprie realizzazioni. Inoltre sviluppare le proprie pagine web scrivendo direttamente l'HTML rappresenta un valido metodo per realizzare un sito web semplice ed efficace per chi non vuole o non ha la possibilità di spendere somme di denaro per acquistare licenze di costosi programmi di sviluppo web. Questa guida base all'utilizzo dell'HTML ti insegnerà a compredere questo linguaggio e a realizzare in modo completo pagine e siti web senza utilizzare alcun tipo di editor, questo non significa che non si debbano utilizzare mai e in nessun caso gli editor HTML (che produttivamente velocizzano il lavoro), ma significa che una volta che avrai imparato a fare una pagina web completamente a mano ti muoverai, successivamente, con o senza editor, con maggiore disinvoltura, sicurezza e professionalità nello sviluppo web, ottenendo risultati maggiori, pagine più affidabili e più precise, siti più visibili e navigabili, ecc ecc; quindi durante la lettura di questa guida dimentica i tuoi editor preferiti, armati di Blocco Note di Windows (o altro editor di puro testo, no Word e simili) e del tuo browser preferito e iniziamo l'avventura. Indice Cos' è l' HTML Scrivere il primo file HTML Il Tag BODY e i colori Formattazione del testo Paragrafi ed allineamenti Elenchi puntati e numerati Uso ed inserimento di immagini Link, ovvero i collegamenti ad altre pagine, siti o immagini Tabelle Divisione delle pagine in Frame Form Cos'è l'HTML? HTML significa "Hyper Text Markup Language" e non è comparabile ad un vero e proprio linguaggio di programmazione, ma è più vicino ad uno script, cioè una serie di istruzioni testuali che vengono interpretate da un programma esterno, in questo caso il browser. Quando si naviga in internet il browser che utilizziamo invia continuamente dati e ne riceve (cioè comunica con il server dove si trovano le pagine web), quando riceve un codice HTML il browser lo legge, lo interpreta e visualizza il contenuto della pagina a seconda delle istruzioni che il codice HTML gli fornisce, in definitiva quindi il codice HTML è in realtà una serie di descrizioni su come la pagina web deve essere visualizzata nel browser. Il codice HTML e' composto da diversi "Tag", questi Tag rappresentano le parole chiave che i browser riconoscono ed intepretano, e servono a "marcare" per esempio un testo in modo che questo abbia una parola in grassetto. Per esempio se volessi scrivere la frase "Confronta i nostri prezzi utilizzando i listini." in modo che "nostri prezzi" sia scritto in grassetto, scriverò il seguente codice: Confronta i <b>nostri prezzi</b> utilizzando i listini. Il Tag "<b>" serve per il grassetto; il risultato sarà: Confronta i nostri prezzi utilizzando i listini. Come e' possibile vedere sopra, tutti i Tag HTML si scrivono tra i caratteri "<" e ">", e tutti quanti (a parte alcuni) hanno un inizio ed una fine, in questo caso la parte del codice "<b>nostri prezzi</b>" indica al broswer, che interpreta il codice, di scrivere in grassetto tutto quel che si trova fra il Tag "<b>" (inizio grassetto) e il Tag "</b>" (fine grassetto), tutto il resto viene visualizzato con il carattere predefinito. Il codice HTML non è case sensitive, cioe' si può scrivere sia tutto maiuscolo che tutto minuscolo, cioè il codice "<B>nostri prezzi</B>" e "<b>nostri prezzi</b>" verrà intepretato allo stesso modo ed avrà lo stesso risultato. E' consigliabile però scrivere tutto in minuscolo in quanto il testo maiuscolo è fastidioso alla lettura e, a lungo andare, più laborioso da scrivere, ed inoltre è buona norma nel web scrivere tutto quanto in minuscolo, specialmente i nomi dei file, per esempio è meglio scrivere "indice.htm" che "INDICE.HTM" o peggio ancora "Indice.HTM", oppure "Logo.JPG" va scritto "logo.jpg", e così via; questo per pure ragioni tecniche legate ai differenti tipi di server che sono utilizzati, se fate largo uso di nomi di file e link scritti in maiuscolo (totalmente o in parte) è possibile che cambiando spazio web, oppure se l'amministratore del server passa da sistemi Windows a sistemi Unix a vostra insaputa, vi potreste ritrovare con lo spiacevole risultato che la metà del vostro sito risulti irraggiungibile o con le pagine web che di colpo e senza apparente motivo non visualizzano più le immagini, oppure con link malfunzionanti; questo perchè, in poche parole, i sistemi Unix fanno distinzione fra un file scritto in maiuscolo ed uno scritto in minuscolo, in pratica il file "Logo.JPG" e "logo.jpg", anche se si chiamano esattamente uguale, sono visti come differenti file e quindi non riconosciuti. E' molto importante inoltre dare dei nomi semplici ai file che si utilizzano, evitando caratteri strani e spaziature, per esempio è sconsigliabile nominare un file "Foto mare Luglio '01.jpg", oppure "$contenuto[1].htm" e così via, in quanto questi caratteri vengono tradotti con codici particolari che in alcuni casi compromettono la visualizzazione corretta della pagina mandando in tilt il browser o il server, oppure facendovi perdere tempo negli aggiornamenti futuri; chiunque abbia un'esperienza di sviluppo web si è già scontrato inevitabilmente più volte con problemi (e ore perse) riguardanti nomi di file scritti con caratteri strani o spaziature. Quando si nomina un file, che sia un'immagine o un file HTML, utilizzare solamente lettere dell'alfabeto e numeri, evitando assolutamente simboli e spazi, scrivendo tutto minuscolo Scrivere il primo file HTML Create una cartella sul destop e nominatela come preferite (es. "sitoweb"), aprite il Blocco Note (o qualsiasi editor di testo puro, come Edit del DOS, VI di Unix, SimpleText del Mac, ecc), fate un nuovo documento e scrivete quanto segue: <html> </html> e salvatelo, nella cartella creata in precedenza, dando come nome del file "index.htm" oppure "index.html". I file HTML possono essere salvati sia con l'estensione *.htm che con *.html, non fa differenza, ma è consigliabile scegliere una delle due e salvare ogni file, per praticità, sempre con la stessa estensione. Questi due Tag HTML rappresentano l'inizio e la fine di una pagina web, il browser sa che quando legge il Tag "<html>" è l'inizio di una pagina web, e quando arriva a "</html>" ne è la fine. Ora fate doppio clic sul file "index.htm" che avete salvato, se è andato tutto bene dovrebbe aprirsi il browser visualizzando una pagina vuota (in quanto non c'è ancora nessun contenuto), se invece si apre il Blocco Note di nuovo vuol dire che avete salvato un file con un nome sbagliato, per esempio "index.htm.txt", se così fosse rinominate il file con il nome giusto; se facendo doppio clic non succede nulla, o si apre qualche altro programma, controllate che nel vostro computer tutto sia installato correttamente e che le estensioni dei file siano assegnate in modo corretto; provate eventualmente ad aprire il browser e tramite il menu File>Apri aprire il file HTML che avete salvato. Il Tag BODY e i colori Ora procederemo con l'aggiungere il contenuto alla nostra pagina web, per far questo (sempre utilizzando lo stesso file di prima) scrivere in mezzo a "<html>" e "</html>" i seguenti Tag: <body> Ciao mondo! </body> ottendendo in totale il seguente codice: <html> <body> La mia pagina web personale. </body> </html> Salvate e visualizzate la pagina facendo doppio clic sul file o premendo il tasto "Aggiorna" del vostro browser. Il risultato sarà una pagina vuota con la semplice scritta: La mia pagina web personale. Nel Tag "<body>" è possibile specificare molte informazioni utili, quali il colore del testo, il colore dei link, lo sfondo della pagina, sia inteso come colore che come immagine (texture). I colori in HTML I colori in HTML si specificano utilizzando il sistema RGB (Red, Green, Blu, cioe' rosso, verde, blu) scrivendoli in esadecimale, con il prefisso "#", miscelando questi valori è possibile ottenere tutta la scala cromatica. Per esempio il colore rosso e' rappresentato dai valori RGB 255,0,0. La scala RGB va da 0 a 255, quindi il valore 255,0,0 significa che il rosso e' in quantità massima e che il verde e il blu sono completamente assenti, quindi il risultato è che avremo un colore rosso acceso, e questo in esadecimale di scrive "#ff0000". Il blu in RGB è uguale a 0,0,255 e in esadecimale lo 0 si scrive con "00" e il 255 di scrive con "ff", quindi si traduce in "#0000ff", e così via. Per le varie sfumature e colori fare riferimento ad una tabella colori in esadecimale, oppure potete utilizzare programmi appositi che miscelano i colori e restituiscono il valore esadecimale. Colore del testo Il colore del testo (se non differentemente specificato) è preimpostato su nero, per specificare un colore diverso, per esempio giallo, bisogna aggiungere, al Tag "<body>" il seguente attributo "text": <body text="#ffff00"> Colore dello sfondo Il colore dello sfondo preimpostato è bianco, ma possiamo sia cambiarlo che utilizzare una texture, o una foto, come immagini di sfondo. E' consigliabile evitare di scegliere colori molto forti come sfondo in quanto potrebbero infastidire l'utente che visita il vostro sito, quindi ridurre la sua permanenza o addirittura spingere gli utenti ad andare altrove quasi subito. Per semplicemente il colore di sfondo, per esempio azzurro chiaro, dobbiamo aggiungere l'attibuto "bgcolor": <body bgcolor="#ccffff"> Se si visualizza la pagina nel browser si vedrà che lo sfondo ha assunto un colore azzurro chiaro. Per impostare invece una texture di sfondo abbiamo bisogno di un'immagine, questa non deve essere troppo grande o pesante altrimenti aumenterà il tempo di scaricamento. Uno sfondo adatto è rappresentato dall'immagine sotto riportata, se non hai nulla a portata di mano puoi scaricarla e salvarla nella cartella che hai creato precedentemente insieme al file HTML che hai creato. Per inserire questo sfondo nella tua pagina bisogna inserire la specifica "background" al Tag "<body>", come sotto riportato: <body background="sfondo.jpg"> Salva e visualizza la pagina, vedrai che ora questa presenterà uno sfondo uniforme composto da tante copie, affiancate in righe e colonne all'infinito, di questa immagine scelta e, scorrendo in basso nel caso in cui la pagina abbia un lungo testo) lo sfondo scorrera' insieme alla pagina, cioè il testo sembrerà stampato sullo sfondo come se questo fosse una carta, se invece vogliamo ottenere l'effetto che il testo sembri stampato su un lucido che scorre sullo sfondo fisso dobbiamo aggiungere un'ulteriore specifica, cioè "bgproperties", quindi: <body background="sfondo.jpg" bgproperties="fixed"> Questo è molto comodo quando, per esempio, come sfondo ultilizziamo una grande immagine che rimane fissa e non scorre, però è sconsigliabile utilizzare quest'ultima specifica per lo sfondo in quanto non tutti i browser la supportano, e il fine del buon sviluppatore web è di realizzare siti che siano visibili ugualmente da differenti browser in modo da rendere un'immagine unica per tutti i visitatori. Nota: è possibile mettere lo sfondo in una sottocartella, per esempio al fine di organizzare meglio i files nel sito, in questo caso si dovrà specificare il percorso relativo dalla directory dove si trova il file html alla directory e al filename che rappresenta lo sfondo. Poniamo il caso che lo sfondo si trovi nella cartella "images", nel valore dell'attributo "background" dovremo specificare, al posto di "sfondo.jpg", il seguente valore: "images/sfondo.jpg". Nota: se si utilizzano contemporaneamente sia il colore di sfondo (bgcolor) che una texture (background) quest'ultima andra' a coprire completamente il colore di sfondo, pertanto se decidiamo di utilizzare una texture di sfondo è inutile specificare anche il colore in quanto non cambierà nulla nella visualizzazione finale della pagina. Colore dei link I link (o collegamenti) verranno trattati più avanti, tuttavia nel tag "<body>" è possibile specificarne i colori in quanto è proprio qui che si impostano gli attributi generali di una pagina web. Le proprietà dei colori dei link hanno 3 diverse specifiche relative ad un link visitato, ad un link non visitato, e ad un link attivo, cioè mentre lo si clicca, e queste 3 differenti specifiche sono: "link" per i link non visitati, "vlink" per i link visitati, "alink" per i link attivi o mentre si cliccano. Nell'esempio vogliamo far si che i link nella nostra pagina siano blu intenso quando non sono mai stati cliccati, blu dopo che sono stati cliccati, e neri mentre si cliccano, quindi aggiungeremo questi attributi al Tag "<body>": <body link="#0000ff" vlink="#000080" alink="000000"> Nota: Se non viene specificato nessun colore i colori saranno: blu primario per i link non visitati, viola per i link visitati e rosso per i link attivi. Riassumendo... Ora scriveremo un file html contenente tutte queste specifiche sopra descritte, quindi: <html> <body text="#ffff00" bgcolor="#ccffff" link="#0000ff" vlink="#000080" alink="000000"> La mia pagina web personale. </body> </html> Salva e visualizza il file nel browser, avrai una pagina azzurra con una scritta gialla e nessun link in quanto non è stato ancora inserito. La scritta gialla è illeggibile quindi cambiamola in nera sostituendo: text="#ffff00" con text="#000000" quindi salva e visualizza, ora la scritta è leggibile, ma cambiamo anche lo sfondo con la texture, per far questo eliminiamo la specifica: bgcolor="#ccffff" e sostituiamola con: background="sfondo.jpg" Il codice HTML definitivo è questo: <html> <body text="#000000" background="sfondo.jpg" link="#0000ff" vlink="#000080" alink="000000"> La mia pagina web personale. </body> </html> Se viene visualizzato nel browser si vedrà una pagina con una texture di sfondo uniforme e la scritta sopra in nero. Il prossimo passo sarà di aggiungere un titolo e formattare il testo. Formattazione del testo In HTML esistono molti differenti Tag per scrivere il testo in tutte le maniere possibili, per titoli, paragrafi, giustificazioni, citazioni, grassetto, corsivo, e molti altri. Analizziamo i più utili. Headers I Tag "headers" sono specifici per i titoli e titoletti, infatti sono già pronti, per così dire, all'utilizzo, senza che si specifichino direttive per grandezza del carattere, grassetto, ecc. In tutto sono sei Tag e la sintassi è la seguente "<hX>...testo...</hX>", dove X viene sostituito da un numero da 1 a 6, dove 1 è il titolo più grande e 6 il più piccolo, per esempio: <h1>Titolo grandezza 1</h1> <h2>Titolo grandezza 2</h2> <h3>Titolo grandezza 3</h3> <h4>Titolo grandezza 4</h4> <h5>Titolo grandezza 5</h5> <h6>Titolo grandezza 6</h6> Se scriviamo questo all'interno di un file html, poi lo salviamo e lo visualizziamo, il risultato è questo: Titolo grandezza 1 Titolo grandezza 2 Titolo grandezza 3 Titolo grandezza 4 Titolo grandezza 5 Titolo grandezza 6 Formattazione del carattere Ovviamente, oltre alle specifiche per il testo che si inseriscono nel Tag "<body>" della pagina, ne esistono altri, per permettere di ottenere testi multicolori, con grassetti, corsivi, sottolineati, piu' grandi e piu' piccoli, questi si ottiene con il Tag "<font>" Se scriviamo in un file html la seguente linea: <font face="verdana" size="2" color="#0000ff">Ultime novità</font> Otterremo il risultato: Ultime novità Come si può vedere la scritta "Ultime novità" si trova fra il Tag "<font>" e "</font>" che delimitano la porzione di testo da formattare. L'attributo "face" specifica il tipo di carattere e fra virgolette deve essere scritto il nome del font, per esempio "verdana", "arial", "times", ecc. L'attributo "size" specifica la dimensione, che va da un massimo di 6 ad un minimo di 1, praticamente l'inverso del comportamento degli "headers" (vedi su) E' possibile specificare più colori o più dimensioni utilizzando sempre il Tag "<font>" per delimitare il testo a cui si devono applicare gli attributi di colore e dimensioni, per esempio: <font face="verdana" size="2" color="#0000ff">Questo testo di colore blu e grandezza 2 contiene una parola <font color="#ff0000">rossa</font> e una parola <font color="#00ff00">verde</font>, alcune parole <font size="3">più grandi</font> e alcune <font size="1">più piccole</font>.</font> Il risultato sarà: Questo testo di colore blu e grandezza 2 contiene una parola rossa e una parola verde, alcune parole più grandi e alcune più piccole. A capo Per andare a capo si utilizza il Tag "<br>" e il suo utilizzo e' molto semplice, infatti questo Tag si usa da solo e non c'e' bisogno di scrivere il corrispondente "</br>" come tutti gli altri Tag, ma semplicemente, ogni volta che vogliamo andare a capo, scriviamo "<br>" nel punto desiderato, per esempio la frase: <font face="verdana" size="2" color="#000000">Sopra la panca la capra campa, sotto la panca la capra crepa.</font> viene scritto tutto in una riga, se proviamo a scriverlo in HTML e visualizzarlo, ma se vogliamo mettere delle mandate a capo possiamo scrivere: <font face="verdana" size="2" color="#ff0000">Sopra la panca <br>la capra campa, <br>sotto la panca <br>la capra crepa.</font> il risultato sarà: Sopra la panca la capra campa, sotto la panca la capra crepa. Stili per arricchire il testo Esistono svariati Tag che servono per abbellire e arricchire il testo, o per renderlo più chiaro e versatile, eccone un elenco dei più utilizzati: <font face="verdana" size="2" color="#0000ff"> <b>questo testo è grassetto</b><br> <u>questo testo è sottolineato</u><br> <i>questo testo è corsivo</i><br> <strike>questo testo è barrato</strike><br> <pre>questo testo è preformattato</pre><br> questa <sup>parola</sup> è allineata in alto<br> questa <sub>parola</sub> è allineata in basso </font> Ancora una volta, se scriviamo questo codice in un file HTML e poi lo visualizziamo, otterremo questo risultato: questo testo è grassetto questo testo è sottolineato questo testo è corsivo questo testo è barrato questo testo è preformattato questa parola è allineata in alto questa parola è allineata in basso Esistono molti altri Tag per formattare il testo ma sono più che altro riproposizioni dei Tag basilari sopra descritti. Paragrafi ed allineamenti Il testo, oltre che ad essere formattato, può, ovviamente, anche essere allineato a destra, al centro e a sinistra. Ci sono svariati modi per allineare un testo, tramite il Tag "<p>", "<div>" e "<center>" ma mentre i primi due servono per allineare il testo in tutti i modi, l'ultimo serve solo per centrarlo ed è stato dichiarato obsoleto, anche se è tuttora supportato grazie alla sua grande diffusione in rete. Per allineare un testo a destra è possibile farlo tramite il seguente codice: <p align="right">Testo allineato a destra</p> oppure con: <div align="right">Testo allineato a destra</div> in entrambi i casi si otterrà questo: Testo allineato a destra Testo allineato a destra Se al posto di "right" scriviamo "left" il testo verrà allineato a sinistra, se al posto di "right" scriviamo "center" il testo verrà allineato al centro, per esempio: <p align="center">Testo allineato al centro</p> <div align="center">Testo allineato al centro</div> <p align="left">Testo allineato a sinistra</p> <div align="left">Testo allineato a sinistra</div> si otterra: Testo allineato al centro Testo allineato al centro Testo allineato a sinistra Testo allineato a sinistra Ovviamente questi testi possono essere formattati utilizzando il Tag "<font>" e gli stili come descritto nella sezione precedente, per esempio <p align="right"><font size="2" color="#ff0000">Testo rosso allineato a destra</font></p> <div align="right"><font size="2" color="#0000ff">Testo blu allineato a destra</font></div> <p align="center"><font size="2" color="#00ff00">Testo verde allineato al centro</font></p> <div align="center"><font size="2"><b>Testo grassetto allineato al centro</b></font></div> <p align="left"><font size="2" color="#0000ff"><i>Testo blu corsivo allineato a sinistra</i></font></p> <div align="left"><font size="3" color="#00ff00">Testo verde piu' grande allineato a sinistra</font></div> si otterrà: Testo rosso allineato a destra Testo blu allineato a destra Testo verde allineato al centro Testo grassetto allineato al centro Testo blu corsivo allineato a sinistra Testo verde piu' grande allineato a sinistra Come è possibile notare, l'uso di "<div>" o "<p>" e' completamente indifferente. Per allineare al centro è possibile scrivere anche: <center>Testo allineato al centro</center> e si otterrà: Testo allineato al centro ma come abbiamo detto, questo Tag è obsoleto anche se ancora supportato, quindi se ne sconsiglia l'utilizzo. Per giustificare un paragrafo di un lungo testo si usano le stesse istruzioni sopra descritte, in questo caso useremo per praticità il Tag "<p>", il codice è il seguente: <p align="left"> SINISTRA Quid autem prius vox primi loquentis sonaverit, viro sane mentis in promptu esse non titubo ipsum fuisse quod ‘Deus’ est, scilicet El, vel per modum interrogationis vel per modum responsionis. Absurdum atque rationi videtur orrificum ante Deum ab homine quicquam nominatum fuisse, cum ab ipso et in ipsum factus fuisset homo. Nam sicut post prevaricationem humani generis quilibet exordium sue locutionis incipit ab ‘heu’, rationabile est quod ante qui fuit inciperet a gaudio; et cum nullum gaudium sit extra Deum, sed totum in Deo, et ipse Deus totus sit gaudium, consequens est quod primus loquens primo et ante omnia dixisset ‘Deus’. </p> <p align="right"> DESTRA Quid autem prius vox primi loquentis sonaverit, viro sane mentis in promptu esse non titubo ipsum fuisse quod ‘Deus’ est, scilicet El, vel per modum interrogationis vel per modum responsionis. Absurdum atque rationi videtur orrificum ante Deum ab homine quicquam nominatum fuisse, cum ab ipso et in ipsum factus fuisset homo. Nam sicut post prevaricationem humani generis quilibet exordium sue locutionis incipit ab ‘heu’, rationabile est quod ante qui fuit inciperet a gaudio; et cum nullum gaudium sit extra Deum, sed totum in Deo, et ipse Deus totus sit gaudium, consequens est quod primus loquens primo et ante omnia dixisset ‘Deus’. </p> <p align="center"> CENTRATO Quid autem prius vox primi loquentis sonaverit, viro sane mentis in promptu esse non titubo ipsum fuisse quod ‘Deus’ est, scilicet El, vel per modum interrogationis vel per modum responsionis. Absurdum atque rationi videtur orrificum ante Deum ab homine quicquam nominatum fuisse, cum ab ipso et in ipsum factus fuisset homo. Nam sicut post prevaricationem humani generis quilibet exordium sue locutionis incipit ab ‘heu’, rationabile est quod ante qui fuit inciperet a gaudio; et cum nullum gaudium sit extra Deum, sed totum in Deo, et ipse Deus totus sit gaudium, consequens est quod primus loquens primo et ante omnia dixisset ‘Deus’. </p> <p align="justify"> GIUSTIFICATO Quid autem prius vox primi loquentis sonaverit, viro sane mentis in promptu esse non titubo ipsum fuisse quod ‘Deus’ est, scilicet El, vel per modum interrogationis vel per modum responsionis. Absurdum atque rationi videtur orrificum ante Deum ab homine quicquam nominatum fuisse, cum ab ipso et in ipsum factus fuisset homo. Nam sicut post prevaricationem humani generis quilibet exordium sue locutionis incipit ab ‘heu’, rationabile est quod ante qui fuit inciperet a gaudio; et cum nullum gaudium sit extra Deum, sed totum in Deo, et ipse Deus totus sit gaudium, consequens est quod primus loquens primo et ante omnia dixisset ‘Deus’. </p> Se scriviamo questo codice in un file HTML, salviamo e visualizziamo, il risultato sarà il seguente: SINISTRA Quid autem prius vox primi loquentis sonaverit, viro sane mentis in promptu esse non titubo ipsum fuisse quod ‘Deus’ est, scilicet El, vel per modum interrogationis vel per modum responsionis. Absurdum atque rationi videtur orrificum ante Deum ab homine quicquam nominatum fuisse, cum ab ipso et in ipsum factus fuisset homo. Nam sicut post prevaricationem humani generis quilibet exordium sue locutionis incipit ab ‘heu’, rationabile est quod ante qui fuit inciperet a gaudio; et cum nullum gaudium sit extra Deum, sed totum in Deo, et ipse Deus totus sit gaudium, consequens est quod primus loquens primo et ante omnia dixisset ‘Deus’. DESTRA Quid autem prius vox primi loquentis sonaverit, viro sane mentis in promptu esse non titubo ipsum fuisse quod ‘Deus’ est, scilicet El, vel per modum interrogationis vel per modum responsionis. Absurdum atque rationi videtur orrificum ante Deum ab homine quicquam nominatum fuisse, cum ab ipso et in ipsum factus fuisset homo. Nam sicut post prevaricationem humani generis quilibet exordium sue locutionis incipit ab ‘heu’, rationabile est quod ante qui fuit inciperet a gaudio; et cum nullum gaudium sit extra Deum, sed totum in Deo, et ipse Deus totus sit gaudium, consequens est quod primus loquens primo et ante omnia dixisset ‘Deus’. CENTRATO Quid autem prius vox primi loquentis sonaverit, viro sane mentis in promptu esse non titubo ipsum fuisse quod ‘Deus’ est, scilicet El, vel per modum interrogationis vel per modum responsionis. Absurdum atque rationi videtur orrificum ante Deum ab homine quicquam nominatum fuisse, cum ab ipso et in ipsum factus fuisset homo. Nam sicut post prevaricationem humani generis quilibet exordium sue locutionis incipit ab ‘heu’, rationabile est quod ante qui fuit inciperet a gaudio; et cum nullum gaudium sit extra Deum, sed totum in Deo, et ipse Deus totus sit gaudium, consequens est quod primus loquens primo et ante omnia dixisset ‘Deus’. GIUSTIFICATO Quid autem prius vox primi loquentis sonaverit, viro sane mentis in promptu esse non titubo ipsum fuisse quod ‘Deus’ est, scilicet El, vel per modum interrogationis vel per modum responsionis. Absurdum atque rationi videtur orrificum ante Deum ab homine quicquam nominatum fuisse, cum ab ipso et in ipsum factus fuisset homo. Nam sicut post prevaricationem humani generis quilibet exordium sue locutionis incipit ab ‘heu’, rationabile est quod ante qui fuit inciperet a gaudio; et cum nullum gaudium sit extra Deum, sed totum in Deo, et ipse Deus totus sit gaudium, consequens est quod primus loquens primo et ante omnia dixisset ‘Deus’. Elenchi puntati e numerati In HTML ci sono molti tipi di elenchi puntati e numerati in diverse maniere, i Tag per ottenere questo sono: "<ol>...<li>...</ol>", dove "<ol>" si mette all'inizio dell'elenco, "<li>" si mette davanti ad ogni nuova voce e "</ol>" si mette alla fine dell'elenco puntato, nel caso di elenchi numerati. Nel caso di elenchi puntati senza alcun tipo di ordinazione al posto di "ol" si mette "ul". Elenchi numerati Gli elenchi numerati sono quelli in cui all'inizio è presente una numerazione o un'ordinazione con lettere o numeri romani; vediamo alcuni esempi: con il codice: <ol> <li>Voce numero 1. <li>Voce numero 2. <li>Voce numero 3. </ol> si ottiene un elenco numerato con numeri: 1. Voce numero 1. 2. Voce numero 2. 3. Voce numero 3. con il codice: <ol type="A"> <li>Voce numero 1. <li>Voce numero 2. <li>Voce numero 3. </ol> si ottiene un elenco ordinato con lettere maiuscole: A. Voce numero 1. B. Voce numero 2. C. Voce numero 3. con il codice: <ol type="a"> <li>Voce numero 1. <li>Voce numero 2. <li>Voce numero 3. </ol> si ottiene un elenco ordinato con lettere minuscole: a. Voce numero 1. b. Voce numero 2. c. Voce numero 3. con il codice: <ol type="I"> <li>Voce numero 1. <li>Voce numero 2. <li>Voce numero 3. </ol> si ottiene un elenco ordinato con numeri romani maiuscoli: I. II. III. Voce numero 1. Voce numero 2. Voce numero 3. con il codice: <ol type="i"> <li>Voce numero 1. <li>Voce numero 2. <li>Voce numero 3. </ol> si ottiene un elenco ordinato con numeri romani minuscoli: i. ii. iii. Voce numero 1. Voce numero 2. Voce numero 3. Elenchi puntati non numerati Questo tipo di elenchi sono, come dice il titoletto, solamente puntati e non hanno un ordinazione di alcun tipo, possiamo però scegliere il tipo di punto che verrà messo ad ogni voce, ma vediamo alcuni esempi: Con il codice: <ul type="disc"> <li>Voce numero 1. <li>Voce numero 2. <li>Voce numero 3. </ul> si otterrà: Voce numero 1. Voce numero 2. Voce numero 3. Con il codice: <ul type="circle"> <li>Voce numero 1. <li>Voce numero 2. <li>Voce numero 3. </ul> si otterrà: o o o Voce numero 1. Voce numero 2. Voce numero 3. Con il codice: <ul type="square"> <li>Voce numero 1. <li>Voce numero 2. <li>Voce numero 3. </ul> si otterrà: Voce numero 1. Voce numero 2. Voce numero 3. Elenchi puntati e numerati nidificati. E' ovviamente possibile creare elenchi puntati che contengono elenchi numerati che a loro volta ne contengono altri e cosi' via, per esempio il codice: <ol type="disc"> <li>Voce numero 1. <li>Voce numero 2. <ul type="disc"> <li>Voce numero 1. <li>Voce numero 2. <ol type="A"> <li>Voce numero 1. <ol type="I"> <li>Voce numero 1. <li>Voce numero 2. </ol> <li>Voce numero 2. <li>Voce numero 3. </ol> <li>Voce numero 3. </ul> <li>Voce numero 3. </ol> genera il seguente risultato: Voce numero 1. Voce numero 2. Voce numero 1. Voce numero 2. A. Voce numero 1. I. Voce numero 1. II. Voce numero 2. B. Voce numero 2. C. Voce numero 3. Voce numero 3. Voce numero 3. Uso ed inserimento di immagini Per inserire un'immagine in un qualunque punto della pagina web si utilizza il seguente Tag: "<img src="nomefile">", il suo utilizzo è alquanto semplice, infatti se utilizziamo il codice: <img src="fiore.jpg"> otterremo il seguente risultato: E' possibile inoltre specificare con l'attributo "border" un bordo colorato intorno all'immagine, per esempio: <img src="fiore.jpg" border="3"> si otterrà: E' possibile anche specificare, con l'attributo "alt", un'etichetta di testo che verrà visualizzata quando ci soffermeremo con il mouse sopra all'immagine, come nell'esempio sotto riportato: <img src="fiore.jpg" border="3" alt="questo è un fiore di loto"> Tramite gli attributi "height" e "width" si possono modificare le dimensioni di un'immagine, ma questo e' sconsigliabile in quanto questa perderà di qualità, si consiglia di preparare l'immagine già nelle dimensioni desiderate. Con il codice: <img src="fiore.jpg" width="50" height="50"> si ottiene Con il codice: <img src="fiore.jpg" width="250" height="250"> si ottiene: Con il codice: <img src="fiore.jpg" width="400" height="60"> si ottiene: Tramite gli attributi "hspace" e "vspace" è possibile specificare una distanza in pixel dagli altri oggetti che si trovano lungo i quattro lati dell'immagine. Per esempio scrivendo il seguente codice: <div align="center"> <img src="fiore.jpg" width="50" height="50"><br> <img src="fiore.jpg" width="50" height="50"> <img src="fiore.jpg" width="50" height="50" hspace="10" vspace="5"> <img src="fiore.jpg" width="50" height="50"><br> <img src="fiore.jpg" width="50" height="50"> </div> otterremo: Dove la spaziatura orizzontale, intorno all'immagine al centro, è di 10 pixel, e la spaziatura verticale e' di 5 pixel. Tramite l'attributo "align" infine e' possibile specificare l'allineamento dell'immagine rispetto ad altre immagini o al testo; vediamo alcuni esempi: Con il codice: <p><img src="fiore.jpg" align="top">questo è un testo</p> otterremo il testo allineato in alto rispetto all'immagine: questo è un testo Con il codice: <p><img src="fiore.jpg" align="middle">questo è un testo</p> otterremo il testo allineato al centro rispetto all'immagine: questo è un testo Con il codice: <p><img src="fiore.jpg" align="bottom">questo è un testo</p> otterremo il testo allineato in basso rispetto all'immagine: questo è un testo I prossimi due attributi sono molti utili per l'inserimento di immagini all'interno di un testo lungo: Con il codice: <p><img src="fiore.jpg" align="left"> rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te,</p> otterremo l'immagine inglobata nel testo e allineata a sinistra: rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te. Con il codice: <p><img src="fiore.jpg" align="right"> rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te,</p> otterremo l'immagine inglobata nel testo e allineata a destra: rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te, rose rosse x te. Link, ovvero i collegamenti ad altre pagine, siti o immagini. Il link rappresenta in realtà l'anima del web in quanto senza di esso non sarebbe possibile alcuna navigazione, e tutte le funzioni principali del web (motori di ricerca, portali, ecc) sarebbero impossibili da gestire. Per aggiungere un link dalla nostra pagina web ad un altra pagina, o sito, e' necessario utilizzare il Tag "<a href=link>...testo e/o immagine</a>", per esempio se volessimo linkare un sito web dal nostro sito, scriveremo: <a href="http://www.feelingrose.com">Sito web di Silvy</a> otterremo: Sito web di Silvy Se facciamo clic su questo link andremo nel sito di Silvy, come specificato, ma questo andrà a sostituire il nostro sito, quindi perchè non farlo aprire in una nuova finestra, affinchè l'utente non vada via dal nostro sito? Questo è possibile tramite l'attributo "target", come nel seguente esempio: <a href="http://www.feelingrose.com" target="_blank">Sito web di Silvy</a> e il risultato sara': Sito web di Silvy però in questo caso quando faremo clic su di esso si aprirà una nuova finestra con il link da noi specificato. Se si vuole scrivere un testo corto ma allo stesso tempo si vuole fornire una descrizione del link, è possibile farlo con l'attributo "title", per esempio: <a href="http://www.feelingrose.com" target="_blank" title="Sito web di Silvy">Silvy</a> otterremo: Silvy e quando andremo con il mouse sopra al link apparirà il testo specificato. Ovviamente è possibile sostituire l'indirizzo web http://www.feelingrose.com con un file HTML del nostro sito che avremmo realizzato in precedenza, ad esempio "news.htm", oppure ad un'immagine, ad esempio "fiore.jpg", cliccando sul link si aprirà il collegamento specificato. E' possibile inoltre utilizzare un'immagine come link cliccabile, scrivendo il seguente codice: <a href="http://www.feelingrose.com" target="_blank" title="Sito web di Silvy"><img src="fiore.jpg"></a> otterremo: Questa è un'immagine cliccabile e funziona esattamente con il link testuale descritto sopra. Nel caso che si voglia rimuovere il bordo blu basta specificare "border=0" nel Tag dell'immagine. Bookmark (segnalibri) Un bookmark non è altro che un collegamento ad una sezione specifica della stessa pagina dove si trova il link, questo si ottiene inserendo un Tag particolare all'interno della pagina, cioe' "<a name=nome>", che ne segnala la posizione (come una bandierina o un segnalibro), poi utilizzando la solita sintassi per creare il collegamento. Ad esempio, all'inizio di questa sezione, è stato inserito il tag: <a name="collegamenti"></a> quindi utilizzando il codice: <a href="collegamenti">Torna all'inizio della sezione</a> si otterrà: Torna all'inizio della sezione e cliccando su questo link l'utente verrà sbalzato all'inizio del capitolo. Link ad email E' possibile anche inserire un collegamento ad un indirizzo email, in modo che l'utente, cliccando sopra, si ritrovi con il proprio client di posta aperto pronto per spedire un messaggio di posta elettronica all'indirizzo email che verrà specificato, questo aggiungendo "mailto:" nell'url, come nell'esempio: <a href="mailto:indirizzo@email">Contattaci</a> si otterrà: Contattaci cliccando su questo link ci ritroveremo il nostro client di posta aperto con l'indirizzo email già preimpostato. Target L'attributo "target" è molto utile alla navigazione quando abbiamo la necessità di far aprire una pagina web o un URL esterno in una nuova finestra o in un determinato frame (che sono trattati più avanti). Si utilizza così: <a href="pagina.htm" target="nome">link</a> Nel valore di "target" va specificato un nome di un frame, al clic quella determinata pagina si aprirà nel nome del frame specificato nel valore di "target, oppure in questo valore è possibile anche specificare una delle parole chiave predefinite per far aprire, per esempio, la pagina in una nuova finestra del browser. Le principali parole chiave sono: "_self" per aprire la pagina nello stesso frame. "_top" per annullare i frame. "_blank" per aprire la pagina in una nuova finestra del browser. Tabelle In HTML le tabelle sono degli strumenti molto utili per l'impaginazione e la formattazione dei contenuti delle pagine web, se utilizzate in modo corretto spesso sono la soluzione di molte problematiche e possono dare un aspetto grafico più gradevole al contenuto della pagina e all'organizzazione di dati, come schede prodotto, elenchi, ecc. La tabella può essere sia visibile che invisibile, fissa oppure adattarsi ad una pagina ed essere formattata in varie maniere; si tratta di un elemento molto flessibile. Il Tag "<table>" La sintassi per creare una tabella di 2x2 celle è questa: <table width="400" border="3" cellpadding="3" cellspacing="3"> <tr> <td>cella 1</td> <td>cella 2</td> </tr> <tr> <td>cella 3</td> <td>cella 4</td> </tr> </table> Il risultato nel browser è questo: cella 1 cella 2 cella 3 cella 4 Analizziamo questo codice. I Tag per l'inizio e la fine della tabella sono "<table>...</table>", in mezzo a questi ci sono i Tag per la definizione di righe e colonne, ma vediamo gli attributi principali della tabella. L'attributo "width" ne determina la larghezza in pixel, se omesso la tabella si allargherà o restringerà a seconda del contenuto, è possibile inoltre specificare una larghezza della tabella in percentuale, se per esempio scriviamo come valore "70%" la tabella si dimensionerà automaticamente al 70% dello spazio disponibile adattandosi alla larghezza della finestra del . E' possibile anche specificare la proprietà "height" che ne specifica l'altezza, ma si consiglia di non usarla. L'attributo "border" specifica la larghezza del bordo, se come valore si da zero allora la tabella risulterà completamente trasparente però manterrà la forma e il contenuto, più si aumenta questo valore e più si otterrà un bordo ampio, come preimpostazione il bordo avrà un aspetto rialzato, ma anche i bordi possono essere colorati. Gli attributi "cellpadding" e "cellspacing" specificano rispettivamente lo spazio che c'è fra l'interno della cella e il proprio contenuto e lo spazio che c'è fra una cella e l'altra. Per speficificare un colore di sfondo globale per la tabella basta aggiungere la proprietà "bgcolor" seguito da un valore esadecimale per il colore, in questo modo: bgcolor="#0000ff", e la tabella si colorerà tutta con quel colore. Per specificare il colore del bordo chiaro bisogna aggiungere la proprietà "bordercolorlight" seguito da un valore esadecimale per il colore, la stessa cosa vale per il bordo scuro con la proprietà "bordercolordark" Vediamo un esempio di codice per tutto ciò: <table width="400" border="3" cellpadding="3" cellspacing="3" bordercolordark="#cc0000" bordercolorlight="#ffff00" bgcolor="#ccffff"> <tr> <td>cella 1</td> <td>cella 2</td> </tr> <tr> <td>cella 3</td> <td>cella 4</td> </tr> </table> Il risultato sarà: cella 1 cella 2 cella 3 cella 4 E' possibile inoltre specificare un'immagine di sfondo, proprio come nel tag "<body>", in questo modo: background="sfondo.jpg"; un esempio pratico: <table width="400" border="3" cellpadding="3" cellspacing="3" bordercolordark="#cc0000" bordercolorlight="#ffff00" bgcolor="#ccffff" background="sfondo.jpg"> <tr> <td>cella 1</td> <td>cella 2</td> </tr> <tr> <td>cella 3</td> <td>cella 4</td> </tr> </table> risultato: cella 1 cella 2 cella 3 cella 4 ll Tag <tr> Il Tag "<tr>...</tr>" specifica l'inizio e la fine di una riga, ogni volta che avremo bisogno di una nuova riga bisognerà aggiungere questi due Tag fra "<table>...</table>", ma non è possibile inserire alcun contenuto in mezzo ai Tag che specificano la riga in quanto c'è comunque bisogno di specificare la colonna, anche se questa fosse unica. Il Tag <td> Il Tag "<td>...</td> specifica una colonna ed è proprio fra questi due che vengono inseriti i contenuti, praticamente tutti gli altri Tag costituiscono solo informazioni sulla struttura globale della tabella. Il contenuto di questo tag può essere qualsiasi cosa: un testo formattato e colorato, delle immagini, paragrafi o altre tabelle. Può anche essere colorato, avere degli sfondi grafici ed essere allineato. Vediamo un esempio di tutto ciò: <table width="400" border="3" cellpadding="3" cellspacing="3" bordercolordark="#cc0000" bordercolorlight="#ffff00" bgcolor="#ccffff"> <tr> <td bgcolor="#00FF00" align="center"><b><font face="arial">cella 1</font></b></td> <td bgcolor="#0000FF" align="right"><font color="#ffff00" face="verdana" size="1">cella 2</font></td> </tr> <tr> <td bgcolor="#800000" align="left"><b><i><font color="#ffffff">cella 3</font></i></b></td> <td background="sfondo.jpg">cella 4</td> </tr> </table> Il risultato sarà: cella 2 cella 1 cella 3 cella 4 Il contenuto del Tag "<td>" può anche essere allineato verticalmente, utilizzando la proprietà "valign" assegnando i valori "top" (sopra), "middle" (centro) e "bottom" (sotto), come nell'esempio: <table border="3" cellpadding="3" cellspacing="3" width="400" height="200"> <tr> <td valign="top">cella 1</td> <td valign="middle">cella 2</td> <td valign="bottom">cella 3</td> </tr> </table> Risultato: cella 1 cella 2 cella 3 Tabelle dentro altre tabelle E' possibile inserire tabelle dentro ad altre celle di una tabella preesistente, in modo molto semplice, basta reinserire il codice di un'intera tabella all'interno dei Tag "<td>...</td>", ad esempio: <table border="3" cellpadding="3" cellspacing="3" width="400"> <tr> <td valign="top">Tabella1<br>cella1 <table border="3" cellpadding="3" cellspacing="3" width="100%"> <tr> <td>Tabella2<br>cella1</td> <td>Tabella2<br>cella2</td> <td>Tabella2<br>cella3</td> </tr> <tr> <td>Tabella2<br>cella4</td> <td>Tabella2<br>cella5</td> <td>Tabella2<br>cella6</td> </tr> </table> </td> <td valign="top">Tabella1<br>cella2</td> <td valign="top">Tabella1<br>cella3</td> </tr> <tr> <td valign="top">Tabella1<br>cella2</td> <td valign="top">Tabella1<br>cella2</td> <td valign="top">Tabella1<br>cella2</td> </tr> </table> Il risultato è: Tabella1 cella1 Tabella1 Tabella1 cella2 cella3 Tabella2 Tabella2 Tabella2 cella1 cella2 cella3 Tabella2 Tabella2 Tabella2 cella4 cella5 cella6 Tabella1 cella2 Tabella1 Tabella1 cella2 cella2 Unione di celle Le celle di una tabella possono essere unite, sia in senso verticale che orizzontale, per creare impaginazioni particolari, questo si ottiene con gli attributi "rowspan" per unire verticalmente e con "colspan" per unire orizzontalmente. Ma vediamo un esempio pratico: <table border="3" cellpadding="3" cellspacing="3"> <tr> <td colspan="3">cella1</td> <td>cella2</td> </tr> <tr> <td rowspan="3">cella3</td> <td>cella4</td> <td>cella5</td> <td>cella6</td> </tr> <tr> <td>cella7</td> <td>cella8</td> <td>cella9</td> </tr> <tr> <td>cella10</td> <td>cella11</td> <td>cella12</td> </tr> </table> si ottiene cella1 cella2 cella4 cella5 cella6 cella3 cella7 cella8 cella9 cella10 cella11 cella12 Divisione delle pagine in Frame Prima di iniziare a trattare questo argomento è necessario chiarire bene che i motori di ricerca non indicizzano i siti e le pagine web sviluppate con i frame, questi interrompono l'indicizzazione del sito non appena appare la struttura di un frame, fermandosi a quella pagina web, quindi se il sito è tutto sviluppato con i frame sin dalla prima pagina avete poche speranze che il sito abbia molte visite. Quindi dimenticatevi dei frame e sviluppate solo pagine intere. Se proprio avete vagliato ogni possibile soluzione e non vi resta altro che suddividere le vostre pagine in frame allora dovrete mettere un particolare impegno nella cura dei Meta Tags , del titolo e del contenuto che andrete a mettere in mezzo ai Tag "<noframes>...</noframes>", inoltre se sviluppate tutto un sito basato sui frame è buona norma affiancarlo ad un sito alternativo, magari solo testuale, in modo che i motori di ricerca possano indicizzare nei loro database tutte le pagine e sottopagine. Una pagina in frame non è altro che un contenitore che contiene altre sottopagine, quindi se per esempio creiamo una pagina web suddivisa in due frame indipendenti ci ritroveremo a lavorare con 3 pagine web, cioè la prima che rappresenta la struttura base e altre due che riempiono questa struttura. Per impostare una pagina in frame dovremo, come detto sopra, creare un documento HTML dove ci sarà specificata la struttura e le divisioni, poi altrettante pagine web (di contenuto) per quante divisioni avremo impostato. Un esempio di struttura base è questo: <html> <head> <title>Titolo</title> </head> <frameset rows="100,*"> <frame name="intestazione" src="intestazione.htm"> <frame name="principale" src="principale.htm"> </frameset> </html> Per visualizzare il risultato clicca qui. Come è possibile vedere dall'esempio abbiamo ottenuto una pagina web divisa in due frame orizzontali, che rappresentano due pagine indipendenti, questi due frame sono divisi da una barra che è possibile anche spostare ridimensionando così i frame stessi, se si vuole invece rendere invisibile questa barra divisoria basta aggiungere nel Tag "<frameset>" gli attributi: framespacing="0" border="0" frameborder="0" , in questo modo: <frameset rows="100,*" framespacing="0" border="0" frameborder="0"> Righe e colonne Il Tag "<frameset>" è quello che determina la struttura base delle divisioni della pagina che può essere divisa più volte in righe, tramite l'attributo "rows", e colonne, tramite l'attributo "cols", la larghezza, o altezza, di queste divisioni può essere specificata sia in pixel che in percentuale, per esempio se scriviamo: <frameset cols="100,*,100">...</frameset> avremo una pagina divista in tre frame verticali, di cui quello a sinistra e quello a destra saranno larghi 100 pixel, quello al centro invece si adatterà a quanto spazio disponibile è rimasto, indipendentemente dalla larghezza della finestra del browser. Se scriviamo: <frameset rows="20%,15%,*"> avremo una pagina web divisa in tre frame orizzontali, di cui il primo in alto sarà alto il 20% dell'altezza totale della finestra del browser, il secondo (in mezzo) il 15% dell'altezza totale della finestra del browser, e il terzo in basso prenderà tutto lo spazio rimasto disponibile. Se scriviamo: <frameset rows="*,*,*"> avremo una pagina web divisa in tre frame orizzontali, semplicemente divisi in parti uguali, ognuno di 1/3 l'altezza totale della finestra del browser. Contenuti Se per esempio dividiamo la pagina in tre colonne, quindi tre frames verticali, dovremo inserire altrettante pagine web di contenuto, tramite le istruzioni: <frame name="sinistra" src="sx.htm"> <frame name="centro" src="centro.htm"> <frame name="destra" src="dx.htm"> queste vanno inserite ovviamente, come nell'esempio sopra, fra i Tag "<frameset>...</frameset>". L'attributo "name" serve appunto per dare un nome al frame, questo sarà utile per la navigazione, infatti se c'e' un link nel primo frame che, al clic, deve far aprire una pagina web nel frame al centro, dovremo utilizzare l'attributo "target" nel link (come spiegato sopra nella sezione link), specificando il nome del frame che ospiterà la pagina web. L'attributo "src" indica quale pagina web deve essere aperta inizialmente in quello specifico frame, come valore deve contenere il nome del file HTML. Il Tag "<noframes>" Questo Tag è molto utile per due ragioni principali, la prima è relativa ai motori di ricerca, in quanto possono indicizzare il contenuto che va inserito in questo Tag, la seconda è che da la possibilità, ai browser che non supportano i frame, di visualizzare comunque un minimo di contenuto. Si utilizza così: <frameset rows="100,*"> <frame name="intestazione"> <frame name="principale"> <noframes> <body> ...contenuto... </body> </noframes> </frameset> Fra i Tag "<noframes>...</noframes>" va inserita una vera e propria pagina web completa, partendo da "<body>" fino a "</body>", è consigliabile sviluppare una pagina HTML testuale, completa di link alle sottopagine, poi fare copia/incolla del codice fra i due Tag, questo, come detto sopra, permetterà sia ai motori di ricerca di indicizzare un minimo di contenuto, che ai (pochi) utenti che non posseggono un browser aggiornato di visualizzare la pagina. Frame dentro ad altri frame. E' possibile nidificare le divisioni in frame in modo che la pagina sia divisa molte volte in sezioni che contengono altre sezioni, sia righe che colonne; vediamo un esempio: <html> <head> <title>Titolo</title> </head> <frameset rows="100,*,100"> <frame name="sopra1" src="f1.htm"> <frameset cols="30%,*,30%"> <frame name="sinistra2" src="f2.htm"> <frameset rows="50%,*"> <frameset cols="30%,*,30%"> <frame name="sinistra4" src="f3.htm"> <frame name="destra4" src="f4.htm"> <frame name="destra4" src="f5.htm"> </frameset> <frame name="sotto3" src="f6.htm"> </frameset> <frame name="destra2" src="f7.htm"> </frameset> <frame name="sotto1" src="f8.htm"> <noframes> <body> ...contenuto... </body> </noframes> </frameset> </html> Per visualizzare l'esempio pratico clicca qui. Abbiamo ottenuto una pagina web con ben 8 divisioni, per cui sono stati necessari ben 9 file HTML! Form Fino ad ora abbiamo visto come è possibile utilizzare i vari Tag HTML per descrivere l'aspetto di una pagina, però fin qui ci siamo limitati al senso unidirezionale del Web; per rendere bidirezionale, quindi interattiva, una pagina web si usano le Form, che servono per raccogliere dati che poi verranno elaborati da programmi (CGI) residenti sul server oppure da script inseriti nell'HTML. Le Form vengono spesso anche utilizzate come modulo da compilare che poi verrà spedito ad un indirizzo email, questo richiede sempre un CGI o uno script che invii i dati ad un dato indirizzo di posta elettronica. Ci sono molti siti in internet che offrono CGI e script gratuiti quindi se si ha bisogno di attuare qualcosa di specifico, come la lettura/scrittura di un database, l'invio di dati ad un indirizzo email, ecc, basta fare delle ricerche e molto probabilmente si troveranno esempi e tutorial completi di quel che si vuole attuare. Il Tag "<form>" Nel codice HTML le form sono delimitate dai Tag "<form>...</form>", fra questi due Tag ne vengono inseriti altri che specificano diversi tipi tipologie di immissione dati, opzioni, valori, ecc. Ad ogni Form va sempre associata un'azione, cioè i dati specificati ed immessi dall'utente vengono inviati ad un CGI o ad uno script che li elabora e fa il lavoro e le procedure per cui è stato creato; la sintassi è questa: <form method="post" action="cgi-bin/script.cgi"> ... </form> La proprietà "action" indica al browser la posizione dello script che deve analizzare e processare i dati. E' possibile anche fare degli esperimenti con la Form immettendo la seguente stringa nel valore di "action", cioe': "mailto:[email protected]", immettendo il tuo indirizzo email, ogni volta che si invierà la Form tramite l'apposito pulsante, i dati verranno inviati nella propria casella di posta elettronica, ma saranno pressochè illeggibili in quanto codificati, però risulta un buon metodo per fare degli esperimenti. La proprietà "method" indica in che formato i dati devono essere inviati allo script, se si utilizza "get" il limite massimo di caratteri contenuti nella form è di 255, se si utilizza "post" i dati vengono inviati come un flusso direttamente al CGI quindi non c'è limite nella lunghezza dei dati. Il Tag "<input>" Questo Tag ha molteplici sfaccettature che permettono di utilizzarlo in molte maniere, specificando il tipo con "type", il nome con "name" e il valore con "value", ma vediamo alcuni esempi pratici: Per inserimento di testi: <input type="text" name="cognome" size="20"> Il risultato è: Come tipo, cioe' "type", è stato specificato "text" e questo ha reso il tipo di input una casella di inserimento testo, come nome, cioe' "name", è stato specificato "cognome", quando i dati verranno inviati di conseguenza al CGI questi conterranno una variabile che si chiama "cognome" e che avrà come valore il testo che l'utente avra' inserito. Opzioni con scelte multiple: Colore Blu <input type="checkbox" name="colore" value="blu"><br> Colore Verde <input type="checkbox" name="colore" value="verde"><br> Colore Rosso <input type="checkbox" name="colore" value="rosso"> Il risultato è: Colore Blu Colore Verde Colore Rosso Il tipo di input "checkbox" permette di dare all'utente una serie di opzioni a selezione multipla, cioe' alla stessa variabile "colore" verrà assegnato un valore oppure più valori, come in un array. Opzioni con scelta singola: Colore Blu <input type="radio" name="colore" value="blu"><br> Colore Verde <input type="radio" name="colore" value="verde"><br> Colore Rosso <input type="radio" name="colore" value="rosso"> Il risultato è: Colore Blu Colore Verde Colore Rosso Contrariamente al tipo "checkbox", il tipo "radio" permette di dare una sola opzione possibile alla variabile "colore", infatti se si prova a selezionare un differente colore si noterà che il precedente selezionato si deseleziona automaticamente e all'invio della form, la variabile colore, avrà un solo valore. Inserimento di password: <input type="password" name="codicesegreto" size="20"> Il risultato è: Usando il tipo "password" se si prova a inserire del testo nella casella si noterà che questo è mascherato. Pulsante di invio della Form: <input type="submit" name="pulsante" value="Invia"> Il risultato è: Invia Specificando il tipo "submit" il Tag si e' trasformato in un pulsante, che indica come scritta il testo che è specificato nella proprietà "value", e si utilizza alla fine della Form quando l'utente ha compilato tutto il resto delle caselle ed opzioni e vuole inviare tutti i dati al CGI, infatti premendo il pulsante tutti i dati immessi vengono raccolti, codificati e inviati al programma che li analizza e fa le procedure per cui è stato creato. Per resettare la Form: <input type="reset" value="Pulisci la form"> Il risultato è: Pulisci la form Il tipo "reset" di solito si affianca al tipo "submit", infatti "reset" serve per pulire la Form da tutti i dati immessi e ripristinare le condizioni iniziali. Utilizzare un'immagine al posto di un pulsante. <input type="image" src="invia.jpg"> Il risultato è: Funziona esattamente come il tipo "submit" solo che e' possibile sostituire il pulsante con un'immagine. Il Tag "<textarea>" Con il Tag "<textarea>...</textarea>" è possibile utilizzare in una Form un'area di testo dove l'utente può inserire un testo lungo, per esempio per scrivere il testo di un messaggio, un curriculum, ecc. E' possibile utilizzare quest'area di testo anche al di fuori di una Form, per esempio per visualizzare un lungo testo in un'area ristretta senza inserire il testo medesimo in una lunga pagina. Con il codice: <textarea rows="6" name="messaggio" cols="41"></textarea> si ottiene: Dove l'utente può inserire un testo, se si vuole già inserire un testo nell'area di testo è sufficiente inserirlo nella posizione fra i due Tag "<textarea>...</textarea>". Per specificare la larghezza e l'altezza dell'area di testo è sufficiente cambiare i valori di "rows" e "cols", rispettivamente per l'altezza e la larghezza. Menù a tendina E' possibile creare un menù a tendina con varie scelte, praticamente il concetto è lo stesso dell'input type radio o checkbox ma il menù a tendina permette di raggruppare in un piccolo spazio molte scelte, anche decine e decine. La sintassi è questa: <select name="scelta"> <option>Scelta 1</option> <option>Scelta 2</option> <option>Scelta 3</option> <option>Scelta 4</option> <option>Scelta 5</option> <option>Scelta 6</option> <option>Scelta 7</option> <option>Scelta 8</option> <option>Scelta 9</option> <option>Scelta 10</option> </select> Il risultato è: Scelta 1 Se si vuole espandere il menù in modo che non sia a tendina, ma sia a scorrimento, bisogna specificarne l'altezza tramite "size", in questo modo: <select name="scelta" size="4"> <option>Scelta 1</option> <option>Scelta 2</option> <option>Scelta 3</option> <option>Scelta 4</option> <option>Scelta 5</option> <option>Scelta 6</option> <option>Scelta 7</option> <option>Scelta 8</option> <option>Scelta 9</option> <option>Scelta 10</option> </select> Il risultato sarà: Scelta 1 Scelta 2 Scelta 3 Scelta 4 Se si vuole inoltre dare all'utente la possibilità di scegliere più di una voce nell'elenco, basta aggiungere la parola "multiple", in questo modo: <select name="scelta" size="4" multiple> <option>Scelta 1</option> <option>Scelta 2</option> <option>Scelta 3</option> <option>Scelta 4</option> <option>Scelta 5</option> <option>Scelta 6</option> <option>Scelta 7</option> <option>Scelta 8</option> <option>Scelta 9</option> <option>Scelta 10</option> </select> E si avrà: Scelta 1 Scelta 2 Scelta 3 Scelta 4 Sarà possibile scegliere più di una voce cliccando e tenendo premuto il tasto Control. Esempio pratico di una Form completa Per completare questa sezione scriviamo una Form completa con tutti gli elementi spiegati: <form method="post" action="inviaemail.asp"> <input type="hidden" name="indirizzoemail" value="[email protected]"> Nome<br> <input type="text" name="nome" size="20"><br> <br> Cognome<br> <input type="text" name="cognome" size="20"><br> <br> Email<br> <input type="text" name="email" size="20"><br> <br> Indirizzo completo<br> <textarea rows="3" name="indirizzo" cols="27"></textarea><br> <br> Scelgli il prodotto<br> <select size="1" name="prodotto"> <option>Servizio A</option> <option>Servizio B</option> <option>Servizio C</option> <option>Servizio D</option> <option>Servizio E</option> <option>Servizio F</option> <option>Servizio G</option> <option>Servizio H</option> </select><br> <br> Metodo di pagamento<br> <input type="radio" value="cartadicredito" checked name="pagamento">Carta di credito<br> <input type="radio" name="pagamento" value="bonifico">Bonifico<br> <input type="radio" name="pagamento" value="contrassegno">Contrassegno<br> <br> Servizi aggiuntivi<br> <input type="checkbox" name="serviziaggiuntivi" value="domicilio">Spedizione a domicilio<br> <input type="checkbox" name="serviziaggiuntivi" value="assicurato">Pacco assicurato<br> <input type="checkbox" name="serviziaggiuntivi" value="urgente">Spedizione urgente<br> <br> Messaggi e commenti eventuali<br> <textarea rows="7" name="messaggio" cols="35"></textarea><br> <br> <input type="submit" value="Invia richiesta" name="B3"> <input type="reset" value="Cancella tutto" name="B4"><br> <p>&nbsp;</p> <p><input type="submit" value="Invia" name="B1"> <input type="reset" value="Reimposta" name="B2"></p> </form> Si ottiene: Nome Cognome Email Indirizzo completo Scelgli il prodotto Servizio A Metodo di pagamento Carta di credito Bonifico Contrassegno Servizi aggiuntivi Spedizione a domicilio Pacco assicurato Spedizione urgente Messaggi e commenti eventuali Invia richiesta Invia Reset Cancella tutto