032.3 Lezione 1
Certificazione: |
Web Development Essentials |
---|---|
Versione: |
1.0 |
Argomento: |
032 Marcatura di un Documento HTML |
Obiettivo: |
032.3 Riferimenti HTML e Risorse Integrate |
Lezione: |
1 di 1 |
Introduzione
Qualsiasi pagina web moderna è raramente costituita da solo testo. Comprende molti altri tipi di contenuti, come immagini, audio, video e anche altri documenti HTML. Insieme al contenuto esterno, i documenti HTML possono contenere link ad altri documenti, il che rende l’esperienza di navigazione Internet molto più semplice.
Contenuto Integrato
Lo scambio di file è possibile su Internet senza pagine web scritte in HTML, quindi perché l’HTML è il formato scelto per i documenti web, e non il PDF o qualsiasi altro formato di elaborazione testi? Una ragione importante è che l’HTML mantiene le sue risorse multimediali in file separati. In un ambiente come Internet, dove le informazioni sono spesso ridondanti e distribuite in luoghi diversi, è importante evitare trasferimenti di dati non necessari. La maggior parte delle volte, le nuove versioni di una pagina web contengono le stesse immagini e altri file di supporto delle versioni precedenti, così il browser web può usare i file precedentemente recuperati invece di copiare tutto di nuovo. Inoltre, mantenere i file separati facilita la personalizzazione del contenuto multimediale secondo le caratteristiche del cliente, come la sua posizione, la dimensione dello schermo e la velocità di connessione.
Immagini
Le immagini sono Il tipo più comune di contenuto incorporato ad accompagnare il testo. Le immagini sono conservate separatamente e sono referenziate all’interno del file HTML con il tag <img>
:
<img src="logo.png">
Il tag <img>
non richiede un tag di chiusura. La proprietà src
indica la posizione di origine del file immagine. In questo esempio, il file immagine logo.png
deve trovarsi nella stessa directory del file HTML, altrimenti il browser non sarà in grado di visualizzarlo. La proprietà source location accetta percorsi relativi, quindi la notazione puntata può essere usata per indicare il percorso dell’immagine:
<img src="../logo.png">
I due punti indicano che l’immagine si trova all’interno della directory contenitore relativa alla directory dove si trova il file HTML. Se il nome del file ../logo.png
è usato dentro un file HTML il cui URL è http://example.com/library/periodicals/index.html
, il browser richiederà il file immagine all’indirizzo http://example.com/library/logo.png
.
La notazione puntata si applica anche se il file HTML non è un file reale nel filesystem; il browser HTML interpreta l’URL come se fosse un percorso a un file, ma è compito del server HTTP decidere se quel percorso si riferisce a un file o a un contenuto generato dinamicamente. Il dominio e il percorso corretto vengono aggiunti automaticamente a tutte le richieste al server, nel caso in cui il file HTML provenga da una richiesta HTTP. Allo stesso modo, il browser aprirà l’immagine corretta se il file HTML è stato aperto direttamente dal filesystem locale.
I percorsi di origine che iniziano con uno slash /
sono trattati come percorsi assoluti. I percorsi assoluti hanno informazioni complete per le posizioni dell’immagine, quindi funzionano indipendentemente dalla posizione del documento HTML. Se il file dell’immagine si trova su un altro server, che sarà il caso quando viene usata un Content Delivery Network (CDN), deve essere incluso anche il nome del dominio.
Note
|
I Content Delivery Network sono composte da server geograficamente distribuiti che immagazzinano contenuti statici per altri siti web. Aiutano a migliorare le prestazioni e la disponibilità per i siti a forte accesso. |
Se l’immagine non può essere caricata, il browser HTML mostrerà il testo fornito dall’attributo alt
invece dell’immagine. Per esempio:
<img src="logo.png" alt="The Company logo">
L’attributo alt
è anche importante per l’accessibilità. I browser “di solo testo” e gli screen reader lo usano come descrizione dell’immagine corrispondente.
Tipi d’Immagine
I browser web possono visualizzare tutti i tipi di immagini più popolari, come JPEG, PNG, GIF e SVG. Le dimensioni delle immagini vengono rilevate non appena le immagini vengono caricate, ma possono essere predefinite con gli attributi width
e height
:
<img src="logo.png" alt="The Company logo" width="300" height="100">
L’unica ragione per includere gli attributi di dimensione al tag <img>
è di evitare di rovinare il layout di pagina quando l’immagine impiega troppo tempo per essere caricata o quando non può essere caricata affatto. Usare gli attributi width
e height
per cambiare le dimensioni originali dell’immagine può portare a risultati indesiderati:
-
Le immagini saranno distorte quando la dimensione originale è più piccola delle nuove dimensioni o quando il nuovo rapporto di proporzioni è diverso dall’originale.
-
Il ridimensionamento delle immagini di grandi dimensioni utilizza una larghezza di banda extra che si traduce in tempi di caricamento più lunghi.
SVG è l’unico formato che non soffre di questi effetti, perché tutte le sue informazioni grafiche sono memorizzate in coordinate numeriche adatte al ridimensionamento e le sue dimensioni non influenzano la dimensione del file (da qui il nome Scalable Vector Graphics). Per esempio, solo la posizione, le dimensioni laterali e le informazioni sul colore sono necessarie per disegnare un rettangolo in SVG. Il valore particolare per ogni singolo pixel sarà reso dinamicamente in seguito. In effetti, le immagini SVG sono simili ai file HTML, nel senso che i loro elementi grafici sono anche definiti da tag in un file di testo. I file SVG sono destinati a rappresentare disegni a spigoli vivi, come grafici o diagrammi.
Le immagini che non rientrano in questi criteri dovrebbero essere memorizzate come bitmap. A differenza dei formati immagine basati su vettori, i bitmap memorizzano in anticipo le informazioni sul colore per ogni pixel dell’immagine. Memorizzare il valore del colore per ogni pixel dell’immagine genera una grande quantità di dati, quindi le bitmap sono solitamente memorizzate in formati compressi, come JPEG, PNG o GIF.
Il formato JPEG è raccomandato per le fotografie, perché il suo algoritmo di compressione produce buoni risultati per le sfumature e gli sfondi sfocati. Per le immagini in cui prevalgono i colori solidi, il formato PNG è più appropriato. Pertanto, il formato PNG dovrebbe essere scelto quando è necessario convertire un’immagine vettoriale in una bitmap.
Il formato GIF offre la qualità d’immagine più bassa di tutti i formati bitmap popolari. Tuttavia, è ancora ampiamente utilizzato a causa del suo supporto alle animazioni. Molti siti web utilizzano i file GIF per visualizzare brevi video, ma vedremo come ci siano modi migliori per visualizzare questo tipo di contenuto.
Audio e Video
I contenuti audio e video possono essere aggiunti a un documento HTML più o meno allo stesso modo delle immagini. Non sorprende che il tag per aggiungere audio sia <audio>
e quello per aggiungere video sia <video>
. Ovviamente, i browser di solo testo non sono in grado di riprodurre contenuti multimediali, quindi i tag <audio>
e <video>
impiegano il tag di chiusura per contenere il testo usato come fallback per l’elemento che non può essere mostrato. Per esempio:
<audio controls src="/media/recording.mp3">
<p>Unable to play <em>recording.mp3</em></p>
</audio>
Se il browser non supporta il tag <audio>
, verrà invece mostrata la riga “Unable to play recording.mp3”. L’uso dei tag di chiusura </audio>
o </video>
permette a una pagina web di includere contenuti alternativi più elaborati rispetto alla semplice linea di testo permessa dall’attributo alt
del tag <img>
.
L’attributo src
per i tag <audio>
e <video>
funziona allo stesso modo del tag <img>
, ma accetta anche URL che puntano a un flusso live. Il browser si occupa di bufferizzare, decodificare e visualizzare il contenuto come viene ricevuto. L’attributo controls
visualizza i controlli di riproduzione. Senza di esso, il visitatore non sarà in grado di mettere in pausa, riavvolgere o controllare in altro modo la riproduzione.
Il Contenuto Generico
Un documento HTML può essere annidato in un altro documento HTML, in modo simile all’inserimento di un’immagine in un documento HTML, ma usando il tag <iframe>
:
<iframe name="viewer" src="gallery.html">
<p>Unsupported browser</p>
</iframe>
I browser più semplici di solo testo non supportano il tag <iframe>
e visualizzeranno invece il testo racchiuso. Come per i tag multimediali, l’attributo src
imposta la posizione sorgente del documento annidato. Gli attributi width
e height
possono essere aggiunti per cambiare le dimensioni predefinite dell’elemento iframe
.
L’attributo name
permette di fare riferimento all’iframe e di cambiare il documento annidato. Senza questo attributo, il documento annidato non può essere cambiato. Un elemento anchor
può essere usato per caricare un documento da un’altra posizione all’interno di un iframe invece che dalla finestra corrente del browser.
Collegamenti
L’elemento della pagina comunemente indicato come link web è anche conosciuto con il termine tecnico anchor, da cui l’uso del tag <a>
. Il collegamento (link) conduce a un altro “luogo”, che può essere qualsiasi indirizzo supportato dal browser. La destinazione è indicata dall’attributo href
(hyperlink reference):
<a href="contact.html">Contact Information</a>
La posizione può essere scritta come un percorso relativo o assoluto, come per i contenuti incorporati discussi in precedenza. Solo il contenuto testuale racchiuso (per esempio, Contact Information) è visibile al visitatore, di solito per impostazione predefinita come testo blu sottolineato cliccabile, ma l’elemento visualizzato sopra il link può anche essere qualsiasi altro contenuto visibile, come le immagini:
<a href="contact.html"><img src="contact.png" alt="Contact Information"></a>
Si possono aggiungere prefissi speciali alla posizione per dire al browser come aprirla. Se il riferimento punta a un indirizzo email, per esempio, il suo attributo href dovrebbe includere il prefisso mailto:
:
<a href="mailto:info@lpi.org">Contact by email</a>
Il prefisso tel:
indica un numero di telefono. È particolarmente utile per i visitatori che visualizzano la pagina su dispositivi mobili:
<a href="tel:+123456789">Contact by phone</a>
Quando il link viene cliccato, il browser apre il contenuto indicato con l’applicazione associata.
L’uso più comune dei link è quello di caricare altri documenti web. Per impostazione predefinita, il browser sostituirà il documento HTML corrente con il contenuto nella nuova posizione. Questo comportamento può essere modificato usando l’attributo target
. L’obiettivo _blank
, per esempio, dice al browser di aprire la posizione data in una nuova finestra o in una nuova scheda del browser, a seconda delle preferenze del visitatore:
<a href="contact.html" target="_blank">Contact Information</a>
Il target _self
è quello predefinito quando l’attributo target
non è fornito. Fa sì che il documento referenziato sostituisca il documento corrente.
Altri tipi di target sono legati all’elemento <iframe>
. Per caricare un documento di riferimento all’interno di un elemento <iframe>
, l’attributo target
dovrebbe puntare al nome dell’elemento iframe:
<p><a href="gallery.html" target="viewer">Photo Gallery</a></p>
<iframe name="viewer" width="800" height="600">
<p>Unsupported browser</p>
</iframe>
L’elemento iframe funziona come una finestra distinta del browser, quindi qualsiasi link caricato dal documento dentro l’iframe sostituirà solo il contenuto dell’iframe. Per cambiare questo comportamento, gli elementi di ancoraggio all’interno del documento incorniciato possono anche usare l’attributo target
. Il target _parent
, quando usato all’interno di un documento incorniciato, farà sì che la posizione di riferimento sostituisca il documento padre contenente il tag <iframe>
. Per esempio, il documento incorporato gallery.html
potrebbe contenere un link che carica se stesso mentre sostituisce il documento padre:
<p><a href="gallery.html" target="_parent">Open as parent document</a></p>
I documenti HTML supportano livelli multipli di annidamento con il tag <iframe>
. Il target _top
, quando usato in un’ancora all’interno di un documento incorniciato, farà sì che la posizione di riferimento sostituisca il documento principale nella finestra del browser, indipendentemente dal fatto che sia il genitore immediato del corrispondente <iframe>
o un “antenato” più indietro nella catena.
Posizioni all’Interno dei Documenti
L’indirizzo di un documento HTML può opzionalmente contenere un frammento che può essere usato per identificare una risorsa all’interno del documento. Questo frammento, noto anche come URL anchor, è una stringa che segue un carattere di hash #
alla fine dell’URL. Per esempio, la parola History
è una anchor nella URL https://en.wikipedia.org/wiki/Internet#History
.
Quando l’URL ha un frammento, il browser scorrerà fino all’elemento corrispondente nel documento: cioè l’elemento il cui attributo id
è uguale alla URL anchor. Nel caso dell’URL dato, https://en.wikipedia.org/wiki/Internet#History
, il browser salterà direttamente alla sezione “History”. Esaminando il codice HTML della pagina, scopriamo che il titolo della sezione ha l’attributo id
corrispondente:
<span class="mw-headline" id="History">History</span>
Le URL anchor possono essere usate nell’attributo href
del tag <a>
, sia quando puntano a pagine esterne sia quando puntano a posizioni all’interno della pagina corrente. In quest’ultimo caso, è sufficiente iniziare con il solo segno di hash con il frammento di URL, come in <a href="#History">History</a>
.
Warning
|
L’attributo |
Ci sono modi per personalizzare il modo in cui il browser reagisce ai frammenti di URL. È possibile, per esempio, scrivere una funzione JavaScript che recepisca l’evento hashchange della finestra e inneschi un’azione personalizzata, come un’animazione o una richiesta HTTP. Vale la pena notare, tuttavia, che il frammento di URL non viene mai inviato al server con l’URL, quindi non può essere utilizzato come identificatore dal server HTTP.
Esercizi Guidati
-
Il documento HTML situato in
http://www.lpi.org/articles/linux/index.html
ha un tag<img>
il cui attributosrc
punta a../logo.png
. Qual è il percorso assoluto completo di questa immagine? -
Indica due ragioni per cui l’attributo
alt
è importante nei tag<img>
. -
Quale formato d’immagine dà una buona qualità e mantiene la dimensione del file contenuta quando è usato per fotografie con punti sfocati e con molti colori e sfumature?
-
Invece di usare un provider di terze parti come Youtube, quale tag HTML ti permette di incorporare un file video in un documento HTML usando solo le caratteristiche standard dell’HTML?
Esercizi Esplorativi
-
Supponiamo che un documento HTML abbia il collegamento ipertestuale
<a href="pic1.jpeg">First picture</a>
e l’elemento iframe<iframe name="gallery"></iframe>
. Come potresti modificare il tag hyperlink in modo che l’immagine a cui punta venga caricata all’interno dell’elemento iframe dopo che l’utente ha cliccato sul link? -
Che cosa succede quando il visitatore clicca su un collegamento ipertestuale in un documento all’interno di un iframe e il collegamento ipertestuale ha l’attributo target impostato su
_self
? -
Noti che l’anchor URL per la seconda sezione della tua pagina HTML non funziona. Qual è la probabile causa di questo errore?
Sommario
Questa lezione tratta del come aggiungere immagini e altri contenuti multimediali usando i tag HTML appropriati. Inoltre, il lettore impara i diversi modi in cui i collegamenti ipertestuali possono essere usati per caricare altri documenti e puntare a posizioni specifiche all’interno di una pagina. La lezione si occupa dei seguenti concetti e procedure:
-
Il tag
<img>
e i suoi attributi principali:src
ealt
. -
Percorsi URL relativi e assoluti.
-
I formati immagine più diffusi per il Web e le loro caratteristiche.
-
I tag multimediali
<audio>
e<video>
. -
Come inserire documenti annidati con il tag <iframe>.
-
Il tag hyperlink
<a>
, il suo attributohref
, e gli target speciali. -
Come usare i frammenti di URL, conosciuti anche come hash anchors.
Risposte agli Esercizi Guidati
-
Il documento HTML situato in
http://www.lpi.org/articles/linux/index.html
ha un tag<img>
il cui attributosrc
punta a../logo.png
. Qual è il percorso assoluto completo di questa immagine?http://www.lpi.org/articles/logo.png
-
Indica due ragioni per cui l’attributo
alt
è importante nei tag<img>
.I browser di solo testo saranno in grado di mostrare una descrizione dell’immagine mancante. Gli screen reader usano l’attributo
alt
per descrivere l’immagine. -
Quale formato d’immagine dà una buona qualità e mantiene la dimensione del file contenuta quando è usato per fotografie con punti sfocati e con molti colori e sfumature?
Il formato JPEG.
-
Invece di usare un provider di terze parti come Youtube, quale tag HTML ti permette di incorporare un file video in un documento HTML usando solo le caratteristiche standard dell’HTML?
Il tag
<video>
.
Risposte agli Esercizi Esplorativi
-
Supponiamo che un documento HTML abbia il collegamento ipertestuale
<a href="pic1.jpeg">First picture</a>
e l’elemento iframe<iframe name="gallery"></iframe>
. Come potresti modificare il tag hyperlink in modo che l’immagine a cui punta venga caricata all’interno dell’elemento iframe dopo che l’utente ha cliccato sul link?Usando l’attributo
target
del taga
:<a href="pic1.jpeg" target="gallery">First picture</a>
. -
Che cosa succede quando il visitatore clicca su un collegamento ipertestuale in un documento all’interno di un iframe e il collegamento ipertestuale ha l’attributo target impostato su
_self
?Il documento sarà caricato all’interno dello stesso iframe, che è il comportamento predefinito.
-
Noti che l’anchor URL per la seconda sezione della tua pagina HTML non funziona. Qual è la probabile causa di questo errore?
Il frammento di URL dopo il segno di hash non corrisponde all’attributo
id
nell’elemento corrispondente alla seconda sezione, oppure l’attributoid
dell’elemento non è presente.