Menu

colspan e rowspan in HTML: come unire le celle di una tabella

Unisci le celle di una tabella su più colonne con colspan e su più righe con rowspan. Impara a contare le celle perché la tabella resti regolare, a creare intestazioni raggruppate e a mantenere leggibili per i lettori di schermo le tabelle con celle unite.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

colspan: una cella su più colonne

colspan="n" rende una cella larga quanto n colonne. La riga in cui si trova ha quindi n - 1 celle in meno. Qui il totale occupa le prime due colonne:

L'ultima riga ha due celle, ma la prima vale due, quindi la riga arriva comunque a tre colonne come le altre.

rowspan: una cella su più righe

rowspan="n" rende una cella alta quanto n righe. Le righe sotto saltano quella colonna, perché la cella alta la occupa già:

Le righe di Bob e Cy hanno un solo <td>: la colonna Team è già occupata da "Design". Nell'HTML niente lo segnala, quindi leggi una tabella con rowspan dall'alto verso il basso e tieni il conto di quali colonne sono ancora coperte.

colspan e rowspan insieme: un orario

Una cella può estendersi in entrambe le direzioni. Un orario è il caso classico, con alcune lezioni che durano due fasce e alcune che coprono due giorni:

Conta la riga delle 10:00: l'intestazione dell'ora, poi Mon è coperto da HTML della riga sopra, poi Lab occupa Tue e Wed. Alle 11:00, Mon è di nuovo libero e Lab copre ancora Tue e Wed, quindi la riga ha una sola cella di dati.

Contare le celle perché la tabella resti regolare

Ogni riga deve arrivare allo stesso numero di colonne, contando il colspan di ogni cella e le colonne coperte dalle celle con rowspan sopra. Quando una riga ha una cella di troppo, il browser aggiunge una nuova colonna per lei e la tabella ha un bordo frastagliato:

Nella tabella sbagliata, la seconda riga ha dimenticato che A copre la sua prima colonna, quindi D finisce in una terza colonna che nessun'altra riga ha. La soluzione è eliminare una cella. Lo stesso errore con colspan è tenere tutte le celle originali nella riga che ha la cella larga.

Una cella in meno è il problema opposto: la riga finisce prima e lascia un buco alla fine.

Intestazioni raggruppate con colspan

Un'intestazione può estendersi sulle colonne che descrive, sopra una riga di intestazioni più specifiche. Segnala con scope="colgroup" così i lettori di schermo la applicano a tutte le colonne sotto di lei:

"City" occupa entrambe le righe di intestazione con rowspan="2", e ogni mese occupa le sue due colonne con colspan="2". Gli elementi <colgroup> definiscono i gruppi di colonne a cui si riferisce scope="colgroup". Un lettore di schermo sulla cella 31 di Rome può quindi dire "Rome, July, High, 31". Per il resto della struttura della tabella, vedi tabelle in HTML.

Usa le unioni solo per una struttura reale

Le celle unite rendono una tabella più difficile da leggere con un lettore di schermo e più difficile da ordinare, filtrare o copiare in un foglio di calcolo. Usale dove i dati sono davvero raggruppati (un totale, un'intestazione sopra delle sottocolonne, una lezione che dura due ore). Se una tabella ha bisogno di molte unioni, due tabelle più semplici sono spesso più chiare.

Errori comuni

  • Lasciare le celle coperte. Una cella colspan="2" sostituisce due celle; elimina una delle originali.
  • Dimenticare le righe sotto un rowspan. Ognuna ha bisogno di una cella in meno.
  • Scrivere colspan su <tr>. Funziona solo su <td> e <th>.
  • Unioni per l'impaginazione visiva, come una riga banner in una tabella usata per impaginare la pagina. Per l'impaginazione usa CSS grid.
  • colspan="100%" per dire "tutta la larghezza". Il browser legge solo le cifre iniziali, quindi questa cella occupa 100 colonne e aggiunge colonne vuote alla tabella. Il valore è un numero intero di colonne.

Domande frequenti

Cosa fa colspan in HTML?

colspan fa estendere un <td> o un <th> su più colonne: <td colspan="3"> prende il posto di tre celle nella sua riga. Quella riga ha quindi bisogno di due celle in meno delle altre.

Cosa fa rowspan in HTML?

rowspan fa estendere una cella verso il basso su più righe: <td rowspan="2"> occupa la sua riga e quella sotto. La riga successiva deve saltare quella colonna, perché la cella sopra la copre già.

Una cella può usare colspan e rowspan insieme?

Sì. <td colspan="2" rowspan="2"> copre un blocco di due colonne per due righe. Ogni riga che attraversa ha bisogno di due celle proprie in meno.

Perché nella mia tabella sporge una cella in più?

Una riga ha più celle delle altre, una volta contate le unioni. Di solito una riga sotto un rowspan elenca ancora una cella per la colonna coperta, oppure una riga con un colspan ha tenuto tutte le celle originali. Togli il <td> in più.

Qual è il valore massimo di colspan?

I browser limitano colspan a 1000 e rowspan a 65534. Per colspan, un valore di 0 o che non inizia con una cifra viene trattato come 1.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA