back to top

Inserire immagini in HTML (il tag IMG)

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:

Pubblicitร 
  • 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:

Inserire immagini in HTML

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:

Ridimensionare immagini in HTML

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>

Prova il codice

Questo il risultato:

Immagine allineata a sinistra
<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>

Prova il codice

Questo il risultato:

Immagine allineata a destra
<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>

Prova il codice

Questo il risultato:

Immagine allineata in basso

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>

Prova il codice

Questo il risultato:

Immagine con distanziamento orizzontale
<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>

Prova il codice

Questo il risultato:

Immagine con distanziamento verticale
Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).