Una delle caratteristiche del linguaggio HTML รจ, come insito nel suo nome, lโessere ipertestuale. Con lโHTML, quindi, si supera il testo ed i documenti si arricchiscono di altri elementi come immagini ed elementi multimediali. In questa lezione vedremo come inserire unโimmagine in un documento HTML attraverso lโutilizzo del tag <img>. Prima di vedere qualโรจ il markup HTML necessario per inserire unโimmagine in una pagina web, tuttavia, รจ bene fare qualche premessa circa i file dโimmagine e le caratteristiche che devono avere.
I formati delle immagini per il Web
I principali e piรน diffusi formati immagine utilizzati sul Web sono:
- GIF (adatto a loghi, bottoni e banner, e possono essere immagini animate, quindi in movimento)
- JPG (adatto alle foto, dato che si tratta di un formato ad alta risoluzione)
- PNG (molto portabile su tutte le piattaforme e meglio trattabile attraverso software di grafica).
Recentemente, al fine di ottimizzare i tempi di caricamento delle pagine web, sono stati introdotti nuovi formati dโimmagine come WEBP e JPEG 2000, che garantiscono migliori livelli di compressione quindi un miglior rapporto tra peso e qualitร dellโimmagine. Eโ bene precisare, tuttavia, che ad oggi il supporti per questi nuovi formati non รจ ancora universale, quindi non tutti i browser sono in grado di interpretarli correttamente.
Inutile, invece, utilizzare formati dโimmagine diversi da quelli indicati in quanto il risultato potrebbe non essere quello aspettato: i browser, infatti, sono in grado di gestire solo i formati grafici per il Web. Non possono essere utilizzati, quindi, file nei formati PSD, BMP, TIFF, ecc.
Immagini e tempi di caricamento della pagina web
Negli ultimi anni la velocitร di caricamento delle pagine web ha assunto unโimportanza centrale, pertanto si rendono opportune alcune indicazioni qualora si desideri incorporare immagini allโinterno delle proprie pagine web:
- Eโ consigliabile utilizzare immagini non troppo pesanti in quanto potrebbero rallentare notevolmente il caricamento della pagina. Prima di pubblicare unโimmagine allโinterno di una pagina web, quindi, รจ consigliabile gestire con attenzione risoluzione e dimensione del file al fine di trovare un compromesso tra la qualitร dellโimmagine ed il suo peso.
- Unโaltra raccomandazione importante riguarda il numero di immagini presenti allโinterno di una pagina web: se รจ possibile inserire infinite immagini (non ci sono limiti in tal senso) รจ altrettanto vero che, di prassi, si cerca di non esagerare col numero di immagini presenti in un documento HTML. Anche in questo caso valgono le osservazioni giร fatte circa i tempi di caricamento: un numero elevato di immagini, infatti, rischierebbe di rallentare la navigazione infastidendo lโutente (ed anche i motori di ricerca).
In conclusione: le immagini allโinterno di una pagina web devono essere ben dimensionate (devono avere una grandezza coerente alle dimensioni con le quali verranno mostrate), devono essere ottimizzate (avere cioรจ un buon rapporto qualitร /peso dellโimmagine) e non essere in numero eccessivo.
Detto questo vediamo come inserire le immagini allโinterno di un documento HTML utilizzando lโopportuno markup.
Il tag <img>
Al fine di inserire immagini allโinterno delle pagine Web รจ necessario utilizzare il tag IMG.
Il tag <img> si dice vuoto, quindi non prevede lโomonimo tag di chiusura (non esiste quindi il corrispondente </img>).
Lโattributo principale del tag IMG รจ src che รจ utilizzato per definire la URL dellโimmagine che si vuole incorporare nella pagina: le immagini, infatti, sono dei file esterni alla pagina web che vengono visualizzate attraverso il collegamento al realtivo file. Altro attributo fondamentale รจ alt il quale รจ utilizzato per impostare un testo alternativo, ovvero una breve descrizione dellโimmagine.
La sintassi di base del tag <img>, quindi, รจ la seguente:
<img src="nome-del-file.gif" alt="breve descrizione dell'immagine">
Lโattributo src
Per richiamare un immagine รจ necessario specificarne il percorso, cioรจ lโindirizzo univoco presso il quale si trova il file.
Il percorso dellโimmagine puรฒ essere:
1) assoluto: lโimmagine viene richiamata indicando il percorso web completo di protocollo e hostname, vediamo un esempio:
https://www.miosito.com/immagini/foto/tramonto.jpg
In questo caso abbiamo il protocollo (https://), lโhostname (www.miosito.com), il percorso locale (/immagini/foto/), il nome del file con tanto di estensione (tramonto.jpg).
Cosรฌ facendo รจ possibile mostrare, allโinterno di una qualsiasi pagina web, anche immagini fiscicamente disponibili allโinterno di altri siti web.
2) relativo: lโimmagine viene richiamata indicando il percorso locale riferito allโhostname corrente, vediamo un esempio:
/immagini/foto/tramonto.jpg
In questo modo abbiamo omosso protocollo e hostname, quindi lโimmagine verrร cercata nello spazio web corrente.
Il primo carattere della nostra stringa รจ una slash (/) quindi il percorso sarร relativo alla directory radice del sito. Viceversa se avessimo omesso il percorso ed inserito solo il nome dellโimmagine, questa sarebbe stata cercata nella posizione corrente.
N.B. Come detto nulla vieta di inserire allโinterno delle nostre pagine delle immagini reperibili su altri siti web semplicemente indicandone la URL allโinterno dellโattributo src. Il rischio di una simile prassi, tuttavia, รจ che lโimmagine remota venga sostituita o cancellata con conseguenze spiacevoli (non solo da un punto di vista estetico) per la nostra pagina web. Eโ anche possibile che il sito remoto adotti pratiche per impedire lโhotlinking delle immagini impoedendo, di fatto, che lโimmagine possa essere incorporata su siti diversi da quello di origine.
Lโattributo alt
Per quanto riguarda lโattributo alt รจ bene sottolinearne lโimportanza: mediante questo attributo, infatti, viene definito un testo alternativo che sarร utile ogni qualvolta lโimmagine โ per una qualsiasi ragione โ non possa essere visualizzata (ad esempio perchรจ rimossa o momentanemante non disponibile per un problema di connessione). Lโattributo alt, inoltre, riveste una grande importanza dal punto di vista dellโaccessibilitร della pagina web da parte di utenti non vedenti nonchรฉ, cosa non secondaria, per una corretta ottimizzazione SEO dei contenuti (il valore dellโattributo alt รจ considerato, a tutti gli effetti, contenuto della pagina e come tale spiderizzabile dai motori di ricerca). Per maggiori informazioni sullโattributo alt si invita alla lettura di questo approfondimento.
Altri attributi del tag <img>
Altri attributi del tag img (oltre a src e alt giร visti in precedenza) sono:
- border โ imposta la dimensione (in pixel) dellโeventuale bordo allโimmagine (0 = nessun bordo);
- width โ imposta in modo esplicito la larghezza in pixel dellโimmagine (facoltativo ma fortemente consigliato);
- height โ imposta in modo esplicito lโaltezza in pixel dellโimmagine (facoltativo ma fortemente consigliato);
- hspace โ imposta la distanza in orizzontale tra lโimmagine ed altri elementi;
- vspace โ imposta la distanza in verticale tra lโimmagine ed altri elementi;
- align โ imposta un allineamento dellโimmagine;
- longdesc โ consente di specificare una URL di un file HTML o TXT contenente la descrizione esaustiva dellโimmagine (questo attributo completa la funzione di alt che, come detto, consente di inserire una sintetica descrizione dellโimmagine ma รจ scarsamente supportato e poco utilizzato);
Considerazioni sugli attributi width e height
Questi attributi, come detto, sono facoltativi in quanto il browser รจ in grado di rilevare automaticamente le dimensioni delle immagini inserite nel codice HTML. Tuttavia, affinchรจ il browser possa conoscere le dimensioni dellโimmagine รจ necessario che questa sia stata caricata completamente: sino a quel momento, quindi, lโimmagine "non ha una dimensione".
Da un punto di vista visivo, quindi, potremmo vedere spostarsi gli elementi della pagina man mano che vengono caricate le immagini. Al fine di evitare questo fastidioso effetto รจ possibile dichiarare (mediante gli attributi width e height) le dimensioni delle immagini in modo tale che queste occupino, fin da subito, il loro giusto ingombro.
<img src="immagine.jpg" width="400" height="200">
Produrrร questo risultato:
Questi attributi, infine, consentono anche di ridimensionare al volo unโimmagine senza modificare il file originale. Si supponga ad esempio di avere una foto di 400 x 200 pixel ma di volerne pubblicare una miniatura. In questo caso le strade sono due: o creiamo una versione ridotta della foto oppure, tramite width e height, impostiamo dimensioni ridotte al file (le dimensioni esplicitate tramite i due attributi prevalgono sulle dimensioni reali dellโimmagine).
<img src="immagine.jpg" width="200" height="100">
Produrrร questo risultato:
Eโ piรน frequente che il riproporzionamento dellโimmagine avvenga mediante CSS mentre gli attributi width e height siano utilizzati per dichiarare le dimensioni originali del file.
Immagini con link
Unโimmagine, ovviamente, puรฒ essere usata come link, ad esempio per creare dei bottoni grafici allโinterno di un menu oppure per creare dei banner pubblicitari. La sintassi per collegare un link HTML ad unโimmagine รจ la seguente:
<a href="pippo.html">
<img src="pippo.gif" alt="Pippo" border="0">
</a>
In questo caso si consiglia di impostare il bordo dellโimmagine a zero per evitare che il link faccia comparire un antiestetico e poco professionale bordo blu intorno allโimmagine. Anche in questo caso รจ possibile agire con CSS, ovviamente.
Allineare un immagine
Il posizionamento delle immagini รจ strettamente dipendente dai contenuti che la circondano. Se lโimmagine viene inserita dopo la chiusura di un paragrafo (<p>) o di un DIV (<div>) questa andrร a capo, posizionandosi sotto al contenuto inserito nel paragrafo o nel div.
Viceversa se lโimmagine viene inserita allโinterno di un flusso di testo, la sua disposizione nello spazio puรฒ essere governata mediante gli attributi align, hspace e vspace.
Mediante lโapposizione dellโattributo align lโimmagine puรฒ essere allineata secondo criteri differenti a seconda del valore associato a tale attributo:
- left โ lโimmagine viene allineata alla sinistra del testo
- right โ lโimmagine viene allineata alla destra del testo
- top โ il testo circostante viene allineato con il margine superiore destro dellโimmagine
- middle โ il testo circostante viene allineato con il centro dellโimmagine
- bottom โ il testo circostante viene allineato con il margine inferiore destro dellโimmagine
Vediamo alcuni esempi:
<h1>Immagine allineata a sinistra</h1>
<p>
<img src="immagine.jpg" align="left">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Accumsan sit amet nulla facilisi morbi tempus. Interdum consectetur libero id faucibus nisl tincidunt eget. Nisl suscipit adipiscing bibendum est ultricies integer quis auctor. Tortor at auctor urna nunc.
</p>
Questo il risultato:
<h1>Immagine allineata a destra</h1>
<p>
<img src="immagine.jpg" align="right">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Accumsan sit amet nulla facilisi morbi tempus. Interdum consectetur libero id faucibus nisl tincidunt eget. Nisl suscipit adipiscing bibendum est ultricies integer quis auctor. Tortor at auctor urna nunc.
</p>
Questo il risultato:
<h1>Immagine allineata in basso</h1>
<p>
<img src="immagine.jpg" align="bottom">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Accumsan sit amet nulla facilisi morbi tempus. Interdum consectetur libero id faucibus nisl tincidunt eget. Nisl suscipit adipiscing bibendum est ultricies integer quis auctor. Tortor at auctor urna nunc.
</p>
Questo il risultato:
Utilizzando gli allineamenti visiti sopra puรฒ diventare utile lโaggiunta degli attributi vspace e hspace per gestire, rispettivamente, la distanza in verticale ed orizzontale rispetto al testo. Questi due attributi possono avere un valore numerico il quale corrisponde alla distanza in pixel che si desidera applicare. Con hspace la distanza viene applicata sia a destra che sinistra, con vspace la distanza viene applicata sia sopra che sotto. Vediamo gli esempi:
<h1>Immagine allineata a sinistra con distanza orizzontale</h1>
<p>
<img src="immagine.jpg" align="left" hspace="100">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Accumsan sit amet nulla facilisi morbi tempus. Interdum consectetur libero id faucibus nisl tincidunt eget. Nisl suscipit adipiscing bibendum est ultricies integer quis auctor. Tortor at auctor urna nunc.
</p>
Questo il risultato:
<h1>Immagine allineata a sinistra con distanza verticale</h1>
<p>
<img src="immagine.jpg" align="left" vspace="100">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Accumsan sit amet nulla facilisi morbi tempus. Interdum consectetur libero id faucibus nisl tincidunt eget. Nisl suscipit adipiscing bibendum est ultricies integer quis auctor. Tortor at auctor urna nunc.
</p>
Questo il risultato: