Skip to main content
Mediaweb Logo

Mediaweb

Html Guida

Liste in HTML: Liste Ordinate, Non Ordinate e di Definizione Spiegate

Padroneggia le liste HTML con questa guida completa che copre gli elementi ul, ol e dl, tecniche di annidamento, stilizzazione con CSS e migliori pratiche di accessibilità.

September 4, 2025
9 min di lettura
HTML
liste
ul
ol
dl
liste annidate
stilizzazione CSS

Comprendere i Tipi di Liste HTML

HTML fornisce tre tipi principali di liste, ognuno con scopi diversi:

  1. Liste Non Ordinate (<ul>) - Per elementi senza un ordine specifico
  2. Liste Ordinate (<ol>) - Per elementi sequenziali o classificati
  3. Liste di Definizione (<dl>) - Per coppie termine-definizione

Esploriamo ogni tipo in dettaglio.

L'Elemento <ul> per Liste Puntate

Le liste non ordinate sono perfette per raggruppare elementi correlati dove l'ordine non ha importanza. Sono comunemente utilizzate per menu di navigazione, elenchi di funzionalità e organizzazione generale del contenuto.

Sintassi Base della Lista Non Ordinata

<ul>
  <li>Primo elemento</li>
  <li>Secondo elemento</li>
  <li>Terzo elemento</li>
</ul>

Esempi del Mondo Reale

Menu di Navigazione:

<nav>
  <ul>
    <li><a href="/">Home</a></li>
    <li><a href="/chi-siamo">Chi Siamo</a></li>
    <li><a href="/servizi">Servizi</a></li>
    <li><a href="/contatti">Contatti</a></li>
  </ul>
</nav>

Elenco di Funzionalità:

<ul>
  <li>Design responsive</li>
  <li>Tempi di caricamento veloci</li>
  <li>Ottimizzato per SEO</li>
  <li>Mobile-friendly</li>
  <li>Compatibile con tutti i browser</li>
</ul>

Lista della Spesa:

<ul>
  <li>Latte</li>
  <li>Pane</li>
  <li>Uova</li>
  <li>Formaggio</li>
  <li>Mele</li>
</ul>

Attributi delle Liste Non Ordinate

Mentre il CSS moderno gestisce la maggior parte della stilizzazione, puoi ancora usare l'attributo type:

<ul type="disc">   <!-- Default: cerchi pieni -->
<ul type="circle"> <!-- Cerchi vuoti -->
<ul type="square"> <!-- Quadrati pieni -->

Nota: L'attributo type è deprecato in HTML5. Usa CSS invece per la stilizzazione.

L'Elemento <ol> per Liste Numerate

Le liste ordinate sono ideali quando la sequenza o la classificazione degli elementi è importante. Sono perfette per istruzioni, classifiche e processi passo-passo.

Sintassi Base della Lista Ordinata

<ol>
  <li>Primo passo</li>
  <li>Secondo passo</li>
  <li>Terzo passo</li>
</ol>

Attributi delle Liste Ordinate

Attributo Start:

<ol start="5">
  <li>Quinto elemento</li>
  <li>Sesto elemento</li>
  <li>Settimo elemento</li>
</ol>

Attributo Type:

<ol type="1">  <!-- 1, 2, 3 (default) -->
<ol type="A">  <!-- A, B, C -->
<ol type="a">  <!-- a, b, c -->
<ol type="I">  <!-- I, II, III -->
<ol type="i">  <!-- i, ii, iii -->

Attributo Reversed:

<ol reversed>
  <li>Terzo posto</li>
  <li>Secondo posto</li>
  <li>Primo posto</li>
</ol>
<!-- Visualizza come: 3. Terzo posto, 2. Secondo posto, 1. Primo posto -->

Esempi del Mondo Reale

Istruzioni per Ricetta:

<h3>Come Fare i Biscotti con Gocce di Cioccolato</h3>
<ol>
  <li>Preriscalda il forno a 190°C</li>
  <li>Mescola farina, bicarbonato e sale in una ciotola</li>
  <li>Monta burro e zuccheri in una ciotola separata</li>
  <li>Aggiungi uova e vaniglia al composto di burro</li>
  <li>Incorpora gradualmente il composto di farina</li>
  <li>Aggiungi le gocce di cioccolato</li>
  <li>Forma palline e disponile su teglie non unte</li>
  <li>Cuoci per 9-11 minuti fino a doratura</li>
</ol>

Top 5 Linguaggi di Programmazione:

<h3>Linguaggi di Programmazione Più Popolari 2024</h3>
<ol>
  <li>JavaScript</li>
  <li>Python</li>
  <li>Java</li>
  <li>TypeScript</li>
  <li>C#</li>
</ol>

Passi di Installazione:

<h3>Guida all'Installazione del Software</h3>
<ol>
  <li>Scarica l'installer dal nostro sito web</li>
  <li>Esegui l'installer come amministratore</li>
  <li>Accetta l'accordo di licenza</li>
  <li>Scegli la directory di installazione</li>
  <li>Seleziona i componenti da installare</li>
  <li>Clicca "Installa" e attendi il completamento</li>
  <li>Riavvia il computer quando richiesto</li>
</ol>

Annidare le Liste

Puoi annidare liste all'interno di altre liste per creare strutture gerarchiche. Questo è utile per creare sotto-menu, schemi dettagliati e strutture organizzative complesse.

Annidare Liste Non Ordinate

<ul>
  <li>Sviluppo Web
    <ul>
      <li>Frontend
        <ul>
          <li>HTML</li>
          <li>CSS</li>
          <li>JavaScript</li>
        </ul>
      </li>
      <li>Backend
        <ul>
          <li>Node.js</li>
          <li>Python</li>
          <li>PHP</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>Sviluppo Mobile
    <ul>
      <li>iOS</li>
      <li>Android</li>
      <li>React Native</li>
    </ul>
  </li>
</ul>

Annidare Liste Ordinate

<ol>
  <li>Fase di Pianificazione
    <ol type="a">
      <li>Definire i requisiti</li>
      <li>Creare wireframe</li>
      <li>Progettare mockup</li>
    </ol>
  </li>
  <li>Fase di Sviluppo
    <ol type="a">
      <li>Configurare l'ambiente di sviluppo</li>
      <li>Costruire le funzionalità principali</li>
      <li>Implementare l'interfaccia utente</li>
    </ol>
  </li>
  <li>Fase di Test
    <ol type="a">
      <li>Test unitari</li>
      <li>Test di integrazione</li>
      <li>Test di accettazione utente</li>
    </ol>
  </li>
</ol>

Liste Annidate Miste

<ol>
  <li>Opzioni per la Colazione
    <ul>
      <li>Cereali
        <ul>
          <li>Cornflakes</li>
          <li>Avena</li>
          <li>Granola</li>
        </ul>
      </li>
      <li>Opzioni Calde
        <ul>
          <li>Pancake</li>
          <li>Waffle</li>
          <li>French Toast</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>Opzioni per il Pranzo
    <ul>
      <li>Panini</li>
      <li>Insalate</li>
      <li>Zuppe</li>
    </ul>
  </li>
</ol>

Usare <dl>, <dt> e <dd> per le Definizioni

Le liste di definizione sono perfette per glossari, FAQ, specifiche di prodotto e qualsiasi contenuto che abbina termini con le loro descrizioni.

Struttura della Lista di Definizione

<dl>
  <dt>Termine 1</dt>
  <dd>Definizione o descrizione del termine 1</dd>
  
  <dt>Termine 2</dt>
  <dd>Definizione o descrizione del termine 2</dd>
</dl>

Esempi del Mondo Reale

Glossario:

<dl>
  <dt>HTML</dt>
  <dd>HyperText Markup Language - il linguaggio di markup standard per creare pagine web</dd>
  
  <dt>CSS</dt>
  <dd>Cascading Style Sheets - utilizzato per descrivere la presentazione di un documento scritto in HTML</dd>
  
  <dt>JavaScript</dt>
  <dd>Un linguaggio di programmazione che abilita pagine web interattive e contenuto dinamico</dd>
  
  <dt>Design Responsive</dt>
  <dd>Un approccio al web design che fa sì che le pagine web si visualizzino bene su vari dispositivi e dimensioni dello schermo</dd>
</dl>

Specifiche del Prodotto:

<dl>
  <dt>Dimensione Schermo</dt>
  <dd>15,6 pollici</dd>
  
  <dt>Risoluzione</dt>
  <dd>1920 x 1080 pixel</dd>
  
  <dt>Processore</dt>
  <dd>Intel Core i7-11800H</dd>
  
  <dt>Memoria</dt>
  <dd>16GB DDR4 RAM</dd>
  
  <dt>Archiviazione</dt>
  <dd>512GB SSD</dd>
  
  <dt>Peso</dt>
  <dd>1,9 kg</dd>
</dl>

Sezione FAQ:

<dl>
  <dt>Qual è la vostra politica di reso?</dt>
  <dd>Offriamo una politica di reso di 30 giorni per tutti gli articoli non utilizzati nella confezione originale. I costi di spedizione per il reso sono a carico del cliente a meno che l'articolo non fosse difettoso.</dd>
  
  <dt>Quanto tempo richiede la spedizione?</dt>
  <dd>La spedizione standard richiede 3-5 giorni lavorativi. La spedizione espressa richiede 1-2 giorni lavorativi. La spedizione internazionale varia in base alla località.</dd>
  
  <dt>Offrite supporto clienti?</dt>
  <dd>Sì, forniamo supporto clienti 24/7 via email, telefono e chat dal vivo. Il nostro team di supporto è sempre pronto ad aiutare con qualsiasi domanda o problema.</dd>
</dl>

Descrizioni Multiple

Un termine può avere descrizioni multiple:

<dl>
  <dt>JavaScript</dt>
  <dd>Un linguaggio di programmazione di alto livello</dd>
  <dd>Comunemente utilizzato per lo sviluppo web</dd>
  <dd>Supporta paradigmi di programmazione orientata agli oggetti e funzionale</dd>
  
  <dt>Python</dt>
  <dd>Un linguaggio di programmazione interpretato di alto livello</dd>
  <dd>Conosciuto per la sua sintassi semplice e leggibile</dd>
  <dd>Popolare per data science, sviluppo web e automazione</dd>
</dl>

Termini Multipli, Una Descrizione

Termini multipli possono condividere la stessa descrizione:

<dl>
  <dt>Frontend</dt>
  <dt>Lato Client</dt>
  <dt>Interfaccia Utente</dt>
  <dd>La parte di un sito web o applicazione con cui gli utenti interagiscono direttamente</dd>
  
  <dt>Backend</dt>
  <dt>Lato Server</dt>
  <dd>La logica lato server e l'infrastruttura che alimenta un sito web o applicazione</dd>
</dl>

Stilizzare le Liste con CSS

Mentre HTML fornisce la struttura, CSS dà vita alle liste con stilizzazione personalizzata.

Stilizzazione Base delle Liste

/* Rimuovi stilizzazione predefinita */
ul, ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Punti elenco personalizzati */
ul li {
  position: relative;
  padding-left: 20px;
}

ul li::before {
  content: "•";
  color: #007bff;
  font-weight: bold;
  position: absolute;
  left: 0;
}

Liste di Navigazione Orizzontali

.nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 20px;
}

.nav-list li {
  display: inline-block;
}

.nav-list a {
  text-decoration: none;
  color: #333;
  padding: 10px 15px;
  border-radius: 5px;
  transition: background-color 0.3s;
}

.nav-list a:hover {
  background-color: #f0f0f0;
}
<ul class="nav-list">
  <li><a href="/">Home</a></li>
  <li><a href="/chi-siamo">Chi Siamo</a></li>
  <li><a href="/servizi">Servizi</a></li>
  <li><a href="/contatti">Contatti</a></li>
</ul>

Liste Ordinate Stilizzate

.custom-ordered {
  counter-reset: item;
  padding: 0;
  list-style: none;
}

.custom-ordered li {
  counter-increment: item;
  margin-bottom: 10px;
  padding-left: 40px;
  position: relative;
}

.custom-ordered li::before {
  content: counter(item);
  background: #007bff;
  color: white;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: 0;
  top: 0;
  font-weight: bold;
  font-size: 14px;
}

Stilizzazione Liste di Definizione

.styled-dl {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 10px 20px;
  max-width: 600px;
}

.styled-dl dt {
  font-weight: bold;
  color: #333;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}

.styled-dl dd {
  padding: 10px 0;
  margin: 0;
  border-bottom: 1px solid #eee;
  color: #666;
}

Stilizzazione Liste Annidate

.nested-list {
  list-style: none;
  padding: 0;
}

.nested-list li {
  margin: 5px 0;
  padding-left: 20px;
  position: relative;
}

.nested-list > li::before {
  content: "▶";
  position: absolute;
  left: 0;
  color: #007bff;
}

.nested-list ul {
  margin-top: 10px;
  padding-left: 20px;
}

.nested-list ul li::before {
  content: "▸";
  color: #666;
}

Migliori Pratiche di Accessibilità

Rendere le liste accessibili assicura che tutti gli utenti possano navigare e comprendere il tuo contenuto efficacemente.

HTML Semantico

<!-- Buono: Navigazione semantica -->
<nav aria-label="Navigazione principale">
  <ul>
    <li><a href="/" aria-current="page">Home</a></li>
    <li><a href="/chi-siamo">Chi Siamo</a></li>
    <li><a href="/contatti">Contatti</a></li>
  </ul>
</nav>

<!-- Buono: Scopo della lista chiaro -->
<h3>Documenti Richiesti</h3>
<ul>
  <li>Patente di guida o carta d'identità</li>
  <li>Prova di reddito</li>
  <li>Estratti conto bancari</li>
</ul>

Etichette e Descrizioni ARIA

<ul aria-label="Link ai social media">
  <li><a href="#" aria-label="Seguici su Facebook">Facebook</a></li>
  <li><a href="#" aria-label="Seguici su Twitter">Twitter</a></li>
  <li><a href="#" aria-label="Seguici su Instagram">Instagram</a></li>
</ul>
/* Assicurati che gli indicatori di focus siano visibili */
.nav-list a:focus {
  outline: 2px solid #007bff;
  outline-offset: 2px;
}

/* Link salta al contenuto */
.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: #000;
  color: white;
  padding: 8px;
  text-decoration: none;
  z-index: 1000;
}

.skip-link:focus {
  top: 6px;
}

Errori Comuni con le Liste da Evitare

1. Usare Liste Solo per il Layout

<!-- Sbagliato: Usare liste solo per la stilizzazione -->
<ul>
  <li><div>Contenuto non realmente correlato</div></li>
  <li><div>Solo per la stilizzazione CSS</div></li>
</ul>

<!-- Corretto: Usa elementi appropriati -->
<div class="card-grid">
  <div class="card">Contenuto 1</div>
  <div class="card">Contenuto 2</div>
</div>

2. Elementi Lista Mancanti

<!-- Sbagliato: Contenuto diretto nella lista -->
<ul>
  Testo direttamente nella lista
  <li>Primo elemento</li>
  <li>Secondo elemento</li>
</ul>

<!-- Corretto: Tutto il contenuto negli elementi lista -->
<ul>
  <li>Testo in un elemento lista</li>
  <li>Primo elemento</li>
  <li>Secondo elemento</li>
</ul>

3. Annidamento Improprio

<!-- Sbagliato: Elemento lista fuori dal genitore -->
<ul>
  <li>Elemento 1</li>
  <li>Elemento 2</li>
</ul>
<li>Elemento orfano</li>

<!-- Corretto: Annidamento appropriato -->
<ul>
  <li>Elemento 1</li>
  <li>Elemento 2</li>
  <li>Elemento 3</li>
</ul>

4. Usare il Tipo di Lista Sbagliato

<!-- Sbagliato: Lista non ordinata per passi -->
<ul>
  <li>Prima, fai questo</li>
  <li>Poi, fai quello</li>
  <li>Infine, fai questo</li>
</ul>

<!-- Corretto: Lista ordinata per passi sequenziali -->
<ol>
  <li>Prima, fai questo</li>
  <li>Poi, fai quello</li>
  <li>Infine, fai questo</li>
</ol>

Tecniche Avanzate per le Liste

Contatori Lista Personalizzati

.custom-counter {
  counter-reset: section;
  list-style: none;
  padding: 0;
}

.custom-counter li {
  counter-increment: section;
  margin-bottom: 10px;
}

.custom-counter li::before {
  content: "Passo " counter(section) ": ";
  font-weight: bold;
  color: #007bff;
}

Liste Interattive

<ul class="interactive-list">
  <li>
    <input type="checkbox" id="task1">
    <label for="task1">Completare proposta progetto</label>
  </li>
  <li>
    <input type="checkbox" id="task2">
    <label for="task2">Rivedere feedback cliente</label>
  </li>
  <li>
    <input type="checkbox" id="task3">
    <label for="task3">Aggiornare timeline progetto</label>
  </li>
</ul>
.interactive-list {
  list-style: none;
  padding: 0;
}

.interactive-list li {
  margin: 10px 0;
  padding: 10px;
  background: #f9f9f9;
  border-radius: 5px;
}

.interactive-list input[type="checkbox"] {
  margin-right: 10px;
}

.interactive-list input[type="checkbox"]:checked + label {
  text-decoration: line-through;
  color: #666;
}

Riassunto delle Migliori Pratiche

  1. Scegli il tipo di lista giusto basato sul significato del contenuto
  2. Usa HTML semantico per migliore accessibilità e SEO
  3. Fornisci intestazioni chiare per introdurre il contenuto delle liste
  4. Stilizza con CSS piuttosto che attributi HTML deprecati
  5. Assicura l'accessibilità da tastiera per liste interattive
  6. Usa etichette ARIA quando lo scopo della lista non è chiaro
  7. Annida correttamente e valida il tuo HTML
  8. Testa con lettori di schermo per assicurare l'accessibilità
  9. Mantieni gli elementi lista concisi e scansionabili
  10. Usa formattazione consistente in tutto il tuo sito

Conclusione

Le liste HTML sono strumenti potenti per organizzare e presentare informazioni efficacemente. Comprendendo quando e come usare liste non ordinate, ordinate e di definizione, puoi creare contenuto web ben strutturato, accessibile e user-friendly.

Ricorda che la chiave per un uso efficace delle liste è scegliere il tipo giusto per il significato e lo scopo del tuo contenuto. Combinato con stilizzazione CSS ponderata e considerazioni di accessibilità, le liste diventano elementi fondamentali per creare esperienze web coinvolgenti e professionali.

Inizia a implementare queste tecniche per le liste nei tuoi progetti, e noterai un'organizzazione del contenuto migliorata, una migliore esperienza utente e un'accessibilità potenziata sui tuoi siti web.

Ultimo aggiornamento: October 3, 2025

Articoli Correlati

Continua a leggere con questi articoli correlati