Usare correttamente <div> e <span> per evidenziare contenuti e micro-sezioni

by Anastasia P.
SHARE
Usare correttamente <div> e <span> per evidenziare contenuti e micro-sezioni
© Guida-HTML5.it

Introduzione

Quando si lavora con HTML, <div> e <span> sono tra gli elementi più usati, ma anche tra i più fraintesi. Il loro scopo principale non è “decorare” il codice a caso, bensì fornire contenitori generici quando non esiste un elemento semantico più adatto. In particolare, sono utilissimi per separare piccoli blocchi di testo, raggruppare informazioni correlate e preparare il contenuto per CSS o JavaScript.

Un uso corretto evita HTML confuso, migliora la leggibilità e rende il progetto più facile da mantenere. Un uso scorretto, invece, porta al classico “div soup”: tanti contenitori inutili, senza significato, che complicano il codice e rendono più difficile lavorare in team.

In questo tutorial vedremo un sotto-argomento molto pratico: come usare <div> e <span> per evidenziare contenuti e micro-sezioni all’interno di una pagina. È un caso reale, comune in interfacce come schede prodotto, notifiche, riepiloghi di ordini, articoli e dashboard.

Codice completo

Nel seguente esempio costruiamo una piccola scheda informativa di un ordine. Usiamo <div> per separare sezioni logiche del contenuto e <span> per evidenziare parti brevi del testo, come stato, prezzo e data.

<div class="order-card">
  <div class="order-header">
    <h3>Ordine #45821</h3>
    <span class="status status-shipped">Spedito</span>
  </div>

  <div class="order-body">
    <p>
      Cliente: <strong>Laura Bianchi</strong>
    </p>

    <p>
      Prodotto principale:
      <span class="product-name">Cuffie wireless Pro</span>
    </p>

    <p>
      Quantità:
      <span class="quantity">2</span>
    </p>

    <p>
      Totale:
      <span class="price">€ 149,90</span>
    </p>
  </div>

  <div class="order-footer">
    <p>
      Data ordine:
      <span class="date">12 maggio 2026</span>
    </p>
  </div>
</div>

Spiegazione

Il punto chiave è capire quando usare <div> e quando usare <span>.

<div>: contenitore di blocco

<div> è un elemento di tipo blocco. Viene usato per raggruppare porzioni di pagina che hanno una funzione strutturale, anche se non sono rappresentate da tag semantici più specifici come <header>, <main>, <section> o <article>.

Nell’esempio:

  • .order-card contiene tutta la scheda ordine;
  • .order-header raggruppa titolo e stato;
  • .order-body contiene i dati principali;
  • .order-footer ospita le informazioni finali.

Questa divisione è utile perché permette di applicare stili mirati, come margini, bordi, sfondi o layout flessibili, senza mescolare tutto in un unico blocco. Inoltre rende il codice più facile da leggere: chi apre il file capisce subito dove inizia e finisce ogni parte della scheda.

<span>: contenitore inline

<span> è invece un elemento inline. Significa che non interrompe il flusso del testo e viene usato per evidenziare una piccola porzione di contenuto all’interno di una frase o di un paragrafo.

Nell’esempio abbiamo usato lo span per:

  • mostrare lo stato dell’ordine;
  • mettere in risalto il nome del prodotto;
  • evidenziare quantità, prezzo e data.

Questo è il caso d’uso ideale di <span>: non crea una nuova sezione della pagina, ma permette di applicare uno stile o un comportamento a una parte specifica del testo.

Perché non usare solo <div> o solo <span>?

Usare sempre <div> al posto di <span> porta a un HTML poco naturale, perché un contenitore di blocco dentro una frase spezza il flusso del testo. Viceversa, usare <span> per contenere intere sezioni rende il codice forzato e poco leggibile.

La regola pratica è semplice:

  • <div> per raggruppare blocchi e sezioni;
  • <span> per evidenziare frammenti inline di testo.

Best practice

Per usare correttamente questi elementi, conviene seguire alcune regole pratiche.

  • Preferisci elementi semantici quando esistono: se il contenuto è un articolo, usa <article>; se è una navigazione, usa <nav>. <div> deve essere una scelta di ripiego ragionata, non automatica.
  • Usa <span> solo per porzioni brevi: è perfetto per numeri, etichette, parole chiave e piccoli stati testuali.
  • Non annidare contenitori inutilmente: ogni <div> in più deve avere un motivo chiaro.
  • Assegna classi descrittive: nomi come order-header, status-shipped o price sono molto più utili di box1 o span-red.
  • Evita di usare <span> per simulare pulsanti o link: se un elemento è interattivo, usa il tag corretto, come <a> o <button>.
  • Ricorda l’accessibilità: un contenitore generico non aggiunge significato per screen reader. Se serve significato, cerca un elemento semantico migliore.

Un altro consiglio utile è pensare all’HTML come a una struttura di dati, non come a un foglio da “impaginare”. Prima definisci il significato del contenuto, poi applica <div> e <span> solo dove servono davvero.

Riepilogo

<div> e <span> sono elementi semplici, ma fondamentali. Il primo serve a raggruppare contenuti in blocchi, il secondo a intervenire su piccole porzioni inline di testo. Usati bene, migliorano la struttura del documento, facilitano il CSS e rendono il codice più chiaro.

Nel caso pratico di una scheda ordine, <div> organizza le sezioni principali mentre <span> mette in evidenza i dettagli importanti. Questo approccio è utile in moltissimi scenari reali: card prodotto, riepiloghi, notifiche, timeline, profili utente e pannelli amministrativi.

La regola da ricordare è semplice: blocchi con <div>, dettagli inline con <span>. Se esiste un tag semantico più adatto, però, scegli sempre quello.

Approfondisci con risorse ufficiali

Per consolidare l’uso corretto di questi elementi, ti consiglio di consultare le documentazioni ufficiali e autorevoli:

  • MDN Web Docs - <div>: documentazione completa con esempi e note sull’uso corretto.
  • MDN Web Docs - <span>: spiegazione dettagliata dell’elemento inline generico.
  • WHATWG HTML Living Standard: specifica ufficiale del linguaggio HTML.
  • W3C Accessibility Guidelines: utile per capire quando un contenitore generico non basta e serve semantica reale.

Studiare queste risorse ti aiuterà a scrivere HTML più pulito, più robusto e più facile da mantenere nei progetti reali.

SHARE