Creazione di pagine Web strutture complesse Silvio Peroni [email protected] http://creativecommons.org/licenses/by-sa/3.0 Prima di iniziare: avete fatto l’esercizio? Il mio tentativo Completamente sbagliato? <html> <head> <title>Philip K. Dick</title> <link type="text/css" rel="stylesheet" href="dick.css"/> ecco il trucco per ottenere quella visualizzazione! </head> <body> <h1>Philip K. Dick</h1> <p><strong>Philip Kindred Dick</strong> (Chicago, 16 dicembre 1928 – Santa Ana, 2 marzo 1982) è stato uno scrittore statunitense.</p> <p>Fu famoso in vita solo nell'ambito della <em>fantascienza</em> statunitense, sia in patria che in Europa (divenne già negli anni ottanta autore di culto in Italia e in Francia). Dopo la sua morte si è avuta la riscoperta della sua narrativa realistica, che è stata pubblicata tutta postuma, con l'eccezione del romanzo <cite>Confessioni di un artista di merda</cite> (1959) – <q>The hell with the newspapers. Nobody reads the letters to the editor column except the nuts. It's enough to get you down.</q></p> <h2>L'opera</h2> <p>Dick è oggi considerato uno dei più importanti autori di fantascienza e della narrativa americana dal secondo dopoguerra; le sue opere sono caratterizzate da un'irrequieta indagine sui temi della realtà (con riprese originalissime delle riflessioni filosofiche sull'ontologia), della simulazione e del falso, della teologia cristiana (in special modo la meditazione paolina e luterana, ma soprattutto di origine gnostica), della storia e della società degli Stati Uniti, e più in generale su quel nodo di idee e problemi noto come postmoderno o tardo capitalismo.</p> <h2>Citazioni celebri</h2> <p>Da <cite>Ma gli androidi sognano pecore elettriche</cite>:</p> <blockquote>Dovunque tu vada, ti sarà richiesto di fare cose che ritieni sbagliate. È una condizione costante della vita quella di essere costretti a violare la propria identità. Una volta o l'altra, ogni creatura vivente si trova costretta ad agire così. È l'ultima ombra, la disfatta della creazione. Questa è una maledizione che alimenta tutta la vita. Dappertutto nell'universo.</blockquote> <blockquote>Cosa si prova ad avere un bambino? Cosa si prova a nascere? Noi non nasciamo, noi non cresciamo. Invece di morire per una malattia, o di vecchiaia, noi ci esauriamo, come le formiche. Ecco, come le formiche. Ecco cosa siamo.</blockquote> </body> </html> • • Il sorgente HTML è giusto, ma viene visualizzato scorretto! Esame non superato? No, superato! Infatti non è importante come il browser visualizza il vostro documento, ma come usate i vari elementi di markup Sommario • • Link Strutture ! ! ! immagine lista tabella Link Cartine stradali • Obiettivo: raggiungere una determinata città partendo da dove ci si trova in un particolare momento • • Collegamenti: le strade Muoversi: un mezzo di trasporto (macchina) Più percorsi • Posso usare differenti percorsi per raggiungere un punto di arrivo in base a differenti esigenze (risparmiare tempo, andare a trovare qualcuno durante il viaggio, ecc.) Cartine della città • Obiettivo: raggiungere determinati indirizzi di una particolare città • Collegamenti: le strade • Muoversi: un mezzo di trasporto (piedi, macchina) Indirizzi di una città • Raggiungere, a partire da una particolare posizione della città, una determinato indirizzo passando anche per diversi percorsi a seconda delle esigenze (a piedi, in macchina, ecc.) Come raggiungo una città o un indirizzo specifico • Seguiamo i cartelli che indicano quale strada percorrere per arrivare: ! ! alla città di arrivo ad uno specifico indirizzo di una particolare città Specificare una strada da seguire • Per specificare una particolare strada per raggiungere una città o un indirizzo specifico si usano semplici stringhe prive di spazi. Ad esempio: ! ! ! Bologna viene usata per indicare di voler raggiungere la città di “Bologna” #ViaIndipendenza13 viene usata per indicare di voler raggiungere l’indirizzo “via Indipendenza 13” della città corrente, qualunque essa sia (nb: il “#” è fondamentale prima del nome quando si vuole specificare un indirizzo di arrivo) Bologna#ViaIndipendenza13 viene usata per indicare di voler raggiungere l’indirizzo “via Indipendenza 13” nella città di “Bologna” Link ipertestuali • • • • • Città = Risorse → URL → Pagine Web Indirizzo città = Attributo id di un elemento di una pagina Web Strada = Link ipertestuale Cartello stradale = Nome associato al link ipertestuale Mezzo = Browser Costruire un link ipertestuale • Serve per creare un collegamento monodirezionale tra due risorse: quella di partenza (la pagina corrente, in cui il link viene inserito) e quella di arrivo (specificata mediante un opportuno attributo) • Per creare un link ipertestuale dentro una pagina Web (la risorsa di partenza) bisogna conoscere dove si vuole arrivare e il testo da associare al link in questione (di solito verrà visualizzato dal browser come sottolineato e blu) • Si usa l’elemento “a” con l’attributo “href” <a href="url_risorsa_di_arrivo">testo del link</a> metafora stradale <a href="città di arrivo">cartello stradale</a> esempio <a href="http://www.unibo.it">UniBO</a> Tipologie di URL usate per la creazione di link (ovvero, come spostarsi verso altre pagine o aree) • • Schema generale URL: [protocollo]://[host]/[risorsa] URL assoluto: voglio creare un link per spostarmi da una pagina Web di un certo host verso un’altra pagina Web di un altro host ! • Cosa si deve conoscere: l’intero URL della pagina Web a cui si vuole arrivare URL relativo: voglio creare un link per spostarmi da una pagina Web verso un’altra pagina Web raggiungibile senza cambiare host ! • Cosa si deve conoscere: la risorsa della pagina Web a cui si vuole arrivare Àncora: voglio creare un link per spostarmi da una certa pagina Web verso una specifica posizione (identificata da un’àncora) della stessa pagina Web o di un altra pagina Web ! Cosa si deve conoscere: se si ci vuole spostare sulla stessa pagina Web, il nome dell’àncora a cui si vuole arrivare (definita dall’attributo “id” specificato sull’elemento HTML di arrivo); nel caso in cui si voglia far riferimento ad un àncora di un altra pagina Web, è necessario conoscere l’URL della pagina Web in cui l’àncora è contenuta Esempio link: URL assoluto http:// + host + risorsa <a href=”http://stable.toolserver.org/ geohack/geohack.php?pagename=Bologna”> 44°29′38″N 11°20′34″E</a> Risultato del click: URL assoluto Esempio link: URL relativo risorsa considerando la posizione corrente, ovvero http://it.wikipedia.org/wiki/ <a href=”Medioevo”>Medioevo</a> Risultato del link: URL relativo http://it.wikipedia.org/wiki/Medioevo Esempio link: àncora (http:// + host + risorsa) sono opzionali + # + id <a href=”#Storia”>2 Storia</a> Risultato del link: àncora oppure <h2 id=”Storia”>Storia</h2> <h2> <a name=”Storia”>Storia</a> </h2> Esempi La cartella “La mia cartella” contiene un file HTML e la cartella “Documenti”. All’interno di “Documenti” è contenuto un altro file HTML • • • Link che va da “miapaginaweb.html” alla pagina Web sul Medioevo di Wikipedia • Link che va da “miapaginaweb.html” all’àncora “Bibliografia” della pagina Web sul Medioevo di Wikipedia <a href=”http://it.wikipedia.org/wiki/Medioevo”>Il medioevo</a> Link che va da “miapaginaweb.html” a “altrapagina.html” <a href=”Documenti/altrapagina.html”>Un’altra pagina</a> Link che va da “miapaginaweb.html” ad un àncora interna definita su un paragrafo <a href=”#lamiaancora”>Vai ad un altro paragrafo</a> ... <p id=”lamiaancora”>Il paragrafo dove è definito il punto d’arrivo</p> <a href=”http://it.wikipedia.org/wiki/Medioevo#Bibliografia”> Vai alla bibliografia dell’articolo sul Medioevo</a> Strutture complesse: immagine, lista e tabella Immagine • In HTML un’immagine è descritta da un elemento vuoto chiamato img • L’elemento ha (quasi) sempre due attributi specificati ! “src”, contiene l’URL della risorsa vera e propria in cui l’immagine è definita " " ! assoluto – protocollo + host + risorsa (es: http://www.google.it/images/logo.gif) relativo (alla posizione in cui il documento si trova) – risorsa (es: immagine.jpg) “alt”, in cui viene specificato il testo alternativo visualizzato dal browser nel caso in cui sia impossibile caricare l’immagine <body> <p>Esempio di immagine con URL assoluto.</p> <img src="http://www.google.it/images/logo.gif" alt="Logo di Google"></img> <p>Esempio di immagine con URL relativo.</p> <img src="immagine.jpg" alt="Un altro testo alternativo"></img> </body> Sul browser: immagine URL assoluto http://www.google.it/images/logo.gif URL relativo immagine.jpg http://a3.unibo.it/Lezioni/ + immagine.jpg http://a3.unibo.it/Lezioni/immagini.html (nb: questa pagina Web non esiste) Lista • Le liste sono un elenco di oggetti organizzati solitamente in uno o più paragrafi • Sono definite dagli elementi ul, se la si vuole puntata, o ol, se la si vuole ordinata • Ogni oggetto di una lista è definito dall’elemento li, il quale solitamente contiene testo o uno o più paragrafi <body> <ul> <li>Questa è una lista puntata con un solo paragrafo, chiaramente sottinteso.</li> <li><p>Ovviamente, posso anche specificarlo esplicitamente il paragrafo.</p></li> </ul> <ol> <li> <p>Con questa lista ordinata si vuole mettere in evidenza come sia necessario l'elemento "p" nel caso in cui si voglia specificare più di un paragrafo per "oggetto lista".</p> <p>Infatti, questo e il precedente paragrafo appartengono allo stesso oggetto.</p> </li> </ol> </body> Sul browser: lista Contenuto della lista puntata (o non ordinata) Contenuto della lista ordinata Tabella • Le tabelle consentono di impaginare dati aggregati, organizzati in una struttura a griglia formata da righe e colonne • • L’elemento per la creazione di una tabella è table • All’interno degli elementi tr posso specificare due tipologie diversi di cella: td (cella dati) o th (cella di intestazione) Siccome la scrittura di una tabella in HTML procede per righe, tutti gli elementi contenuti in table sono tr (table row, appunto) <body> <table border=”1”> <tr> <th>Prima cella di intestazione</th> <th>Seconda cella di intestazione</th></tr> <tr> <td>Questa è una cella dati, il cui paragrafo è sottinteso.</td> <td><p>Come per le liste, anche le tabelle possono contenere – espliciti – uno o più paragrafi.</p></td> </tr> </table> </body> Sul browser: tabella Tabella table Sul browser: tabella Prima riga tr Seconda riga tr Sul browser: tabella Celle di intestazione th Celle dati td Le colonne vengono definite automaticamente a seconda del numero di celle presenti nelle varie righe Consigli per l’esame Regole d’oro L’esame è semplice se vi esercitate a casa Venire alla prova pratica senza aver provato nemmeno una volta a fare un documento HTML è completamente inutile (leggasi: difficilmente supererete l’esame) Quindi provate, provate, provate