HTML e creazione di pagine Web Giuseppe MORELLI Agenda • Il World Wide Web Architettura • Principi di HTML • Il linguaggio e le istruzioni principali • I collegamenti • Script • Fogli di stile CSS (Cascade Style Sheet) • HTML dinamico • Introduzione a Frontpage di Microsoft WWW: Architettura • Si tratta di un sistema di strutturazione ed organizzazione di informazioni in rete. • Q u e s t o t i p o d i o r g a n i z z a z i o n e m i ra a d accelerare lo scambio di informazioni attraverso protocolli standardizzati, semplificando le attività di fruizione dell’informazione. • L’architettura WWW è di tipo Client/Server ovvero siamo in presenza di un sistema in cui un calcolatore, il Server, offre un servizio mentre un altro, il Client, vi accede secondo una serie di regole. .. In pratica • Il programma Server è invece quel programma preposto alla trasmissione dei dati in rete, cioè distribuisce i documenti richiesti dai vari utenti (tramite client). • Fisicamente deve essere installato sulla macchina che ospita i documenti (es. Microsoft Internet Information Server per sistemi Windows, Apache per sistemi Unix). Pagine Web • Assieme al WWW è nato il linguaggio HTML. Questo permette la scrittura di documenti da pubblicare sui server per il successivo reperimento e la relativa fruizione da parte dei client. • Utilizzando l’HTML puro un documento (una pagina web) “incapsula” al suo interno sia i contenuti informativi del documento sia la codifica dell’interfaccia con cui questi verranno presentati (pagina web statica). Linguaggio HTML: definizioni • L’HTML é il linguaggio del web. • Esistono molti editor che permettono di generare pagine web senza conoscere HTML. E’ tuttavia utile conoscere la struttura dei documenti scritti in tale linguaggio poiché: – Evoluzione del linguaggio piú rapida di quella degli editor – per ottenere risultati specifici talvolta é necessario apportare delle modifiche al codice generato dagli editor – Anche glil editor migliori non sono privi di errore • HTML é un linguaggio a tag • TAG: un tag é una istruzione fatta da una serie di caratteri maiuscoli o minuscoli, senza spazi, racchiusi fra I simboli < e >. • Esistono due tipi di TAG: – comando di markup:sono quelli che possono essere usati singolarmente; (<tag>) – tag contenitori: sono quelli utilizzati incoppia ovvero:esiste un tag iniziale ed un tag finale che si differenziano slo nel fatto che nel tag finale il simbolo < é seguito dal simbolo /; il comando esplicitato ha effetto sul testo contenuto fra il tag iniziale e il tag finale(<tag1> …… </ tag1>) • Attributo:é un elemento che si trova all’interno di un tag per specificare informazioni al comando HTML in questione. • Per specificare un attributo di un tag é necessario inserire nel tag (tag iniziale) il nome dell’attributo, il simbolo =, il valore dell’attributo. (<tag attributo=“valore”> ……) • Un tag puó includere diversi attributi alcuni dei quali possono essere obbligatori altri facoltativi • Caratteri e separatori:In una pagina web, tutto ció che non é riconosciuto come tag, costituisce testo normale e viene visualizzato come tale. • I normali caratteri usati come separatori (spazi, tabulazioni, ritorno a capo)all’interno di codice HTML sono interpretati come singoli spazi, indipendentemente dal numero di ripetizione degli stessi. • Se fosse necessario inserire caratteri separatori aggiuntivi e/o altri caratteri speciali (es. <, > é…) é possibile utilizzare il carattere speciale & (spazio=&nbsp; - < = &lt; - > = &gt; ) • Se si commette qualche errore nell’inserimento di un comando HTML, il browser non fará alcuna diagnosi e non visualizzerá alcun messaggio di errore. Il comando in questione verrá semplicemente ignorato. • Sebbene non sia necessario che I comandi HTML rispettino un allineamento particolare, per maggiore leggibilitá e per rendere piú semplice la manutenzione del codice scritto é bene “indentare” il codice. Le due parti di un file HTML • Tutti le istruzioni di un file HTML sono all’interno del tag contenitore <HTML> • Il contenuto del tag HTML é suddiviso in due parti: – Intestazione che si trova in un tag contenitore <HEAD>; questa sezione contiene di solito pochi Tag che servono per l’identificazione della pagina web (titolo, meta..) – Corpo contenuto nel tag contenitore <BODY>; questa sezione contiene tutte le istruzioni per la visualizzazione degli elementi nelle pagine (testo, immagini…..) I TAG in dettaglio • <HEAD> .. </HEAD>: di solito al suo interno si trovano pochi comandi tra cui: – <TITLE> Titolo </TITLE>: Questo é il titolo che appare nella barra del titolo del browser. Nessuna altra parte dell’intestazione verrá visualizzata sullo schermo – É possibile trovare anche dei comandi <META>. Si tratta di comandi particolari che sono utilizzati dai robot di ricerca per la catalogazione delle pagine nei morori di ricerca: <META Name=“Nome” CONTENT= “valore”> … • <BODY>…</BODY>:il tag body accetta diversi attributi alcuni dei quali sono particolarmente utili: – BACKGROUND = Nome di file : permette di specificare il file immagine che si vuole utilizzare come sfondo della pagina web che si sta descrivendo (opzionale) – BGCOLOR=colore: consente di assegnare allo sfondo della pagina un colore unico (opzionale) – TEXT=colore: consente di assegnare un colore al testo dell’intera pagina web (opzionale) A proposito di colori.. • HTML utilizza due metodi per fare riferimento ai colori – Tramite il loro nome: Esiste un elenco di 216 colori conosciuti dai browser; tra questi esistono sicuramente quelli pú comuni quali white, yellow, black …. – Tramite un codice a 3 numeri: Il codice RGB (red, green, blue) é un codice esadecimale formato da tre numeri da 00 a FF che indicano rispettivamente la quantitá di rosso , verde e blue che il colore desiderato possiede. Comandi relativi a paragrafi • Abbiamo giá detto che i separatori (cosí anche il ritorno a capo) vengono interpretati come singolo spazio dal browser. – Esistono dei comandi di formattazione che permettono di produrre delle interruzioni nella continuitá del testo. – <BR>: equivale esattamente ad un ritorno a capo – <P>: accettato sia come comando di markup che come tag contenitore, sul paragrafo cui si riferisce agisce come il tag precedente ma aggiunge una interlinea. • Attributo interessante del tag <P> é ALIGN = left/center/ right che permette di specificare l’allineamento del paragrafo cui si riferisce rispetto alla pagina. • Se non specificato altrimenti il paragrafo risulterá allineato a sinistra (left) … – <DIV> :Questo tag contenitore é utilizzato per raggruppare vari elementi della pagina web ai quali si vuole applicare una unica formattazione • Anche questo tag accetta l’attributo ALIGN con la stessa sintassi vista per il tag <P> – <HR> : permette di separare due paragrafi attraverso una linea orizzontale con ombra. Accetta diversi attribuit: • WIDTH = larghezza attraverso questo attributo si specifica la larghezza in pixel o in % (rispetto alla finestra) della linea • SIZE = numero specifica lo spessore della linea • NOSHADE elimina l’ombreggaitura Comandi per la formattazione del testo • Funzioni di formattazione piú comuni: Grassetto, Corsivo, Sottolineato. • Questo tipo di formatatzione puó essere applicata a qualunque testo e di qualsiasi lunghezza (dal singolo carattere a diversi paragrafi). Basta racchiudere il testo da modificare fra inizio e fine dell’appropriato tag contenitore: – Grassetto: <STRONG>…</STRONG> o <B>…</B> – Corsivo: <EM>…</EM> o <I>…</I> – Sottolineato: <U>…</U> • <Hn>: si tratta di un tag contenitore che permette di ottenere una visualizzazione a 6 livelli di titolo (n=1..6) in ordine di importanza descrescente (titoli, sottotitoli). Ogni livello é preceduto e seguito da una interlinea. • <PRE>: il tag contenitore PRE permette di inserire nella pagina da visualizzare del testo preformattato. Ovvero il browser utilizzerá caratteri monospazio per la rappresentazione del testo specificato e iseparastori contenuti nel testo verranno mantenuti tali. … • In HTML la dimensione di un carattere si esprime in punti 1..7 (7=Massima; default = 3) • Tag per la modifica della dimensione dei caratteri – <BIG>: tag contenitore che permette di aumentare la dimensione dei caratteri di un punto – <SMALL>: tag contenitore che permette di Diminuire la dimensione dei caratteri di un punto – <FONT> : Il tag contenitore permette di specificare piú attributi per il testo contenuto fra il suo inizio e la fine: • SIZE = num : dimensione dei caratteri • COLOR = colore: colore del testo Inserimento di commenti • All’interno del Codice HTML è Possibile inserire dei commenti ovvero del testo che non viene visualizzato/interpretato dal browser. • Il tag da utilizzate è : – <!--> e <--> HTML ed elenchi • Per visualizzare una serie di elementi o elenchi di oggetti esistono delle istruzioni particolari. Ovvero siamo in presenza di tre tipi di formattazione in grado di far risaltare una serie di oggetti correlati fra i paragrafi di un testo – Elenchi Puntati: vengono utilizzati per visualizzare una serie di elementi in cui non è importatne l’ordine; I rientri sono segnati da segni tipografici (punti elenco); il tag contenitore per un elenco puntato è <UL>…</UL> (unordered list). Ogni elemento dell’elenco deve essere preceduto dal tag <LI>. – Il tag <UL> accetta l’attributo TYPE per specificare il punto elenco preferito – Elenco Numerato: questo tipo di elenco è utilizzato per numerare o specificare l’ordine esatto di una serie di oggetti e/o operazioni. In questo caso i rientri dell’elenco vengono segnati da numeri posti in ordine crescente. Il tag contenitore per un elenco numerato è <OL>…</OL> (ordered list). Anche in questo caso ogni elemento deve essere preceduto dal tag <LI>. – Gli attributi TYPE e START del tag UL possono essere utilizzati per impostare rispettivamente il tipo di numerazione da utilizzare (numeri arabi, romani …) e l’inizio del conteggio. – Elenco di definizioni: questo tipo di elenco è utilizzato quando si vogliono visualizzare degli elementi a coppie (Es: termine, definizione; capitolo,contenuti …). Inquesto caso il tag contenitore è <DL>…</DL>(definition list). Ogni termine è preceduto dal tag <DT>, ogni definizione dal tag <DD> – Elenchi nidificati: E’ possibile unire stili di elenchi diversi per ottenere elenchi misti es: 1. OL • Ul1 • Ul1 2. OL • Ul2 • Ul2 Immagini e HTML • Nelle pagine HTML si possono inserire attualmente solo due tipi di immagini .GIF e .JPG o .JPEG. • I due formati sono caratterizzati dal fatto che offrono un alto livello di compressione a scapito della qualità. – E’ conveniente utilizzare i file .GIF (256 colori) per la memorizzazione di disegni e/o diagrammi creati con il pc. – Per le foto, al fine di garantire la visualizzazione del massimo livello di dettaglio, e’ conveniente utilizzare il formato .JPG Inserimento di immagini • <IMG>: è il tag da utilizzare per inserire immagini in una pagina HTML. – E’ necessario specificare l’attributo SRC = nomefile. – Altri attributi sono accettati (ma non sono obbligatori) dal tag IMG: • ALIGN=valore che consente di disporre il testo intorno all’immagine • ALT=valore: contiene la scritta che viene visualizzata al posto di una immagine fino a che questa non è caricata del tutto o quando ci si posiziona con il mouse sull’immagine stessa. • WIDTH & HEIGHT = valore: consentono di modificare le dimensioni di visualizzazione della immagine specificata nell’attributo SRC – Immagini Trasparenti: Molte volte se lo sfondo utilizzato per la pagina web non é uniforme, quando nella pagina viene inserita una immagine viene a mancare la continuitá di questo sofndo che é interrotto dallo sfondo dell’immagine inserita. Soluzione a questo problema é utilizzare le immagini in formato GIF. Tale formato infatti consente, in fase di creazionn dell’immagine, di rendere un colore trasparente. Ovvero quando si sovrappone ad un’altra immagine, questo colore viene ignorato e viene invece mostrato il colore di sfondo della immagine di fondo. Utilizzo di immagini negli elenchi • Per rendere piú attraenti gli elenchi puntati é possibile utilizzare un trucco che permette di sostituire I segni tipografici (bullet) con delle immagini. • In questo caso basta utilizzare anziché iltag proprio degli elenchi puntati <UL>…</UL> il tag degli elenchi di definizioni <DL>…</DL> e come tag di livello solo il <DD> ed inserire I comandi IMG a questo livello • Nota Path assoluti e relativi I collegamenti • Fino ad ora ci siamo occupati di tage e comandi relativi ad una singola pagina. Ma la forza del World Wide Web (grande ragnatela mondiale) é che all’interno di una pagina si possono trovare, in qualunque punto, collegamenti ad altre pagine, ad altri siti. • Questi collegamenti, indicati con testo e/o immagini, fanno riferimento ad indirizzi nella rete (Uniform Resource Locator) • NOTA: Indirizzi IP e DNS • <A> é il tag contenitore che consente di inserire un collegamento ad una risors ain una pagina web. Esso accetta come attributi: – HREF=nome_risorsa : attraverso questo attributo si specifica URL del file collegato. • Es. <A HREF=“nomefile.htm”>Vai al file</A> visualizzerá nella pagina web la scritta Vai al file. L’utente inoltre potrá cliccare su tale scritta e il browser aprirá il file nomefile.htm • Esistono tre tipi di collegamento; il tag da utilizzare é sempre lo stesso, essi si differenziano per il modo di specificare la risorsa da collegare. • Collegamenti esterni:sono quei collegamenti che fanno riferimento a pagine contenute su alri siti o addirittura su altri server. In questo caso il nome della risorsa é rappresentato dal suo URL completo di protocollo. – Se ad esempio volessi inserire in una pagina un collegamento al sito del giornale la repubblica dovrei scrivere: – <A HREF=“http:\\www.larepubblica.it”>Vai</a> • Pagina di default…… • Collegamenti interni: sono i collegamenti che fanno riferimento a pagine contenute nello stesso server. In questo caso il nome della risorsa che viene specificato nell’attributo HREF del tag <A> é il path del file HTML della pagina da collegare. – <A HREF=“nomefile.htm”>Collegamento</a> • ATTENZIONE AI PATH RELATIVI E ASSOLUTI • Collegamenti all’interno dello stesso file: quando siamo in presenza di una pagina molto lunga é possibile suddividerla in sezioni ponendo le cosiddette ancore (segnalibri, bookmarks). – <A NAME=“nome_sezione”> • Tali ancore sono indirizzabili direttamente attraverso collegamenti ottenuti sempre con il tag <A>ma con l’attributo HREF impostato come nel seguente esempio: • <A HREF=“#nome_sezione”>Vai a nome_sezione</a> Si premette cioé al nome dell’ancora definita il simbolo # • É possibile effettuare collegamenti anche da immagini es: • <A HREF=“animalideldeserto.htm”> <IMG SRC=“cammello.gif”> </A> In questo caso cliccando sull’immagine raffigurante il cammello si accede alla pagina indicata nell’attributo HREF del tag A. • Quando si effettua un collegamento con una immagine essa viene racchiusa in una cornice di colore blue. Per eliminare tale cornice basta impostare l’attributo di IMG BORDER = 0 • Quando si ha la necessitá di inserire nella pagina web un indirizzo email ed “automatizzare” l’invio della posta elettronica ll’indirizzo desideratii si usa un collegamento simile al seguente: – <A HREF=“mailto:Indirizzo di posta”> Contattaci </A> Le tabelle • Una tabella in HTML é definita attraverso il tag contenitore <TABLE>…</TABLE>. • All’internop del tag table si devono specificare tutte le righe e lo si fa attraveerso il tag <TR>… </TR>. • Per ogni riga della tabella si devono specificare poi le celle (una per ogni colonna) e lo si fa attraverso il tag contenitore <TD>…</TD> • Le celle (intersezioni fra righe e colonne di una tabella) possono contenere elementi di qualunque tipo: testo immagni e perfino altre tabelle – Es: <TABLE BORDER= 1> <TR> <TD> <TD> </TR> <TR> <TD> <TD> </TR> Mattina</TD> Pomeriggio </TD> 9.00 – 13.00 </TD> 14.00 – 18.00</TD> <TABLE> – Genera una tabella di una riga e di due colonne che sarebbe del tutto invisibile (testo a parte) se non si specifcasse l’attributo di TABLE BORDER = size • <CAPTION>…<CAPTION>: permette di specificare un titolo per la tabella; esso accetta l’attributo ALIGN che puó assumere I valori – TOP: permette di visualizzare titolo della tabella sopra la stessa – BOTTOM: permette di visualizzare titolo al di sotto della tabella stessa • <TH>…</TH>:questo tag si puó utilizzare al posto del tag <TD> quando si vogliono evidenziare le intestazioni delle colonne Attributi di TABLE • BORDER: permette di specificare lo spessore del bordo della tabella • WIDTH: permette di impostare la larghezza della tabella (in pixel o in %) • CELLPADDING: permette di impostare lo spazio fra il bordo ed il contenuto di una cella • CELLSPACING: permette di impostare lo spazio fra le celle • BGCOLOR: permette di impostare il colore di sfondo della intera tabella Attributi di TR/TD/TH • ALIGN: per impostare l’allineamento orizzontale degli elementi di una riga (LEFT, RIGHT, CENTER) • VALIGN: per impostare l’allineamento verticaale degli elementi di una riga (TOP, MIDDLE, BOTTOM) • BGCOLOR: per impostare il colore di sfondo di una riga • HEIGHT: permette di impostare l’altezza di una riga • BORDERCOLOR: per impostare il colore del bordo delle celle appartenti ad una riga Attributi di TD/TH • COLSPAN: permette di fare l’unione di due celle vicine (la cella e quella alla sua destra) • ROWSPAN: permette di fare l’unione di due celle (la cella e quella sotto) <TABLE VALIGN=TOP BORDER= 2> <TR> <TD> Mattina </TD> <TD> Pomeriggio </TD> </TR> <TR> <TD COLSPAN=2> 9.00 – 13.00 14.00 – 18.00 </TD> </TR> <TABLE> ROWSPAN = 2 Mappe Immagini • Fare una mappa immagine significa suddividere l’immagine in aree facilmente riconoscibili e creare per ogni area un collegamento interno o esterno. • Prima cosa da fare é stabilire le coordinate espresse in pixel delle aree sensibili. • Tali coordinate vengono poi inserite nei tag come mostato nella prossima slide. • Si possono definire aree sensibili di tre forme geometriche: cerchio, rettangolo poligono • Una mappa si definisce con il tag <MAP>…</ MAP> specificando l’attributo obbligatorio NAME • All’interno questo tag conterrá tanti tag <AREA> quante sono le aree sensibili definite. Ciascun tag <AREA> dovrá avere I seguenti attributi impostati: – SHAPE: indica la forma dell’area (rect,circle,polygon) – COORDS: coordinate che individuano l’area tutte separate da virgola (rect:estremitá diag. Maggiore; circle:coordinate centroe+ raggio; polygon:coordinate dei punti in ordine) • <MAP NAME=“mappa1”> <AREA shape=“rect” coords=1,1,10,10 href=“link1.htm”> <AREA shape=“polygon” coords=1,1,10,10,15,15,1,1 ….. </MAP> Un immagine userá la mappa attraverso l’attributo USEMAP di IMG. <IMG SRC=“name.gif” USEMAP=“#mappa1”> Moduli • Vengono utilizzati dai proprietari dei siti web per il reperimento di informazioni da parte dell’utente. – L’utente fornisce delle informazioni attraverso I controlli di testo, le caselle combinate, pulsanti … – Queste informazioni vengono inviate al server per l’elaborazione e/o archiviazione. – Assieme alle informazioni, il server riceve delle indicazioni sul modo di trattare le informazioni ricevute. • Un modulo é specificato attraverso il TAG contenitore <FORM>…</FORM>. Accetta i seguenti attributi: – NAME: questo attributo permette di assegnare un nome al modulo. – METHOD: puó assumere i valori “POST” e “GET” – ACTION: specifica il programma che il server deve lanciare quando gli vengono inviate le informazioni raccolte attraverso questo modulo. • Un modulo oltre ai normali Tag html contiene I tag che permetto raccogliere informazioni (controlli) che vengono specificati attraverso il tag <INPUT>. • Il tag <INPUT> accetta i seguenti attributi: – NAME: permette di assegnare un nome al controllo (importante per uso con ASP) – TYPE: a seconda di questo valore nella pagina HTML verrá visualizzato un controllo diverso. I valori che puó assumere sono: • Button, reset, Submit • text, password file radio checkbox – SIZE: lunghezza del controllo – VALUE:valore assegnato (testo contenuto) Frame • I frame permettono di visualizzare sullo schermo diverse finestre contemporaneamente. • Prima cosa da fare é quindi decidere il layouts della pagina da visualizzare. • Per poter impostare I frame vengono utilizzati due Tag <FRAMESET> e <FRAME> – <FRAMESET> </FRAMESET>: accetta come attributi • COLS =“dim1%,dim2%,dim3%…” • ROWS =“dim1%,dim2%,dim3%…” – <FRAME>: accetta come attributi: • • • • NAME =: nome per identificare il frame SRC= Pagina da visualizzare NORESIZE per rendere il frame non ridimensionabile SCROLLLING = NO (elimina le barre di scorrimento) • In un sito che si basa su frame per ogni collegamento si dovrebbe specificare il frame su cui la nuova pagina va caricata. • Questo si puó fare utilizzando l’attributo TARGET del tag A. • Il valore da attribuire a tale paramettro é il nome del frame target appunto.