Sviluppo Web

Il Tag Table

Introduzione alle tabelle HTML: organizzare dati in righe e colonne utilizzando table, tr e td. Esercitazione guidata sulla creazione di un orario scolastico e introduzione ai bordi CSS.

Che cos’è una tabella HTML

Una tabella permette di organizzare informazioni in righe e colonne.

Una tabella permette di organizzare informazioni in righe e colonne.

Pensiamo, per esempio, a un semplice orario scolastico:

Ora     Lunedì       Martedì       Mercoledì
------------------------------------------------
8:00    Italiano     Matematica    Informatica
9:00    Inglese      Informatica   Italiano
10:00   Matematica   Inglese       Storia

Possiamo individuare:

  • 3 righe contenenti gli orari delle lezioni;
  • 4 colonne: Ora, Lunedì, Martedì e Mercoledì.
Idea fondamentale

Una tabella HTML è formata da righe. Ogni riga contiene una o più celle. Le celle, disposte una accanto all’altra, formano le colonne.

Il tag <table>

Il tag <table> indica l’inizio e la fine di una tabella HTML.

Il tag <table> indica l’inizio e la fine di una tabella HTML.

<table>

    ...

</table>

Tutte le righe e tutte le celle della tabella dovranno essere inserite tra il tag di apertura <table> e quello di chiusura </table>.

Ricorda

<table> è il contenitore dell’intera tabella. Da solo, però, non crea ancora righe o celle.

Il tag <tr>: creare le righe

Il tag <tr> crea una riga della tabella.

Il tag <tr> crea una riga della tabella.

Il nome tr deriva dall’inglese table row, cioè riga della tabella.

Una tabella con una sola riga può essere scritta così:

<table>

    <tr>

    </tr>

</table>

Se vogliamo due righe, dobbiamo utilizzare due elementi <tr>:

<table>

    <tr>

    </tr>

    <tr>

    </tr>

</table>
Osserva

In questo esempio abbiamo 2 elementi tr, quindi la tabella contiene 2 righe.

Il tag <td>: creare le celle

All’interno di ogni riga inseriamo le celle.

All’interno di ogni riga inseriamo le celle.

Una cella viene creata mediante il tag <td>.

Il nome td deriva da table data.

Per esempio:

<tr>

    <td>Italiano</td>

</tr>

Abbiamo creato una riga contenente una sola cella.

Inseriamo ora tre celle nella stessa riga:

<tr>

    <td>Italiano</td>
    <td>Matematica</td>
    <td>Informatica</td>

</tr>

Le tre celle vengono visualizzate una accanto all’altra. Abbiamo quindi creato tre colonne.

Regola importante

Se una riga contiene:

  • 1 td → avrà 1 cella;
  • 2 td → avrà 2 celle;
  • 3 td → avrà 3 celle;
  • 4 td → avrà 4 celle.

Costruiamo righe e colonne

Combiniamo ora i tre tag che abbiamo imparato.

Combiniamo ora i tre tag che abbiamo imparato.

<table>

    <tr>
        <td>Italiano</td>
        <td>Matematica</td>
        <td>Informatica</td>
    </tr>

    <tr>
        <td>Inglese</td>
        <td>Storia</td>
        <td>Informatica</td>
    </tr>

</table>

Contiamo gli elementi:

  • ci sono 2 tag tr → quindi abbiamo 2 righe;
  • ogni riga contiene 3 tag td → quindi abbiamo 3 colonne.
                 COLONNE

              1           2             3

RIGA 1     Italiano    Matematica    Informatica

RIGA 2     Inglese     Storia        Informatica
Attenzione

Le celle <td> devono essere inserite all’interno di una riga <tr>.

Rendiamo visibile la tabella: i bordi

Se apriamo una tabella HTML nel browser, i confini delle celle potrebbero non essere chiaramente visibili.

Se apriamo una tabella HTML nel browser, i confini delle celle potrebbero non essere chiaramente visibili.

Per vedere meglio righe e colonne possiamo aggiungere un semplice bordo.

<style>

    table, td {
        border: 1px solid black;
    }

</style>

Osserviamo la proprietà:

border: 1px solid black;
1px indica lo spessore del bordo
solid indica che il bordo è una linea continua
black indica il colore del bordo

Possiamo quindi leggere:

border: 1px solid black;
          |    |     |
          |    |     +--- colore
          |    |
          |    +--------- tipo di linea
          |
          +-------------- spessore

Perché alcuni bordi sembrano doppi?

Applicando un bordo alle celle potremmo vedere due linee tra una cella e quella vicina.

Possiamo unirle utilizzando:

table {
    border-collapse: collapse;
}

La proprietà border-collapse: collapse; fa in modo che i bordi delle celle vicine vengano uniti.

CSS utile per le nostre tabelle
table, td {
    border: 1px solid black;
}

table {
    border-collapse: collapse;
}

Diamo un po’ di spazio al contenuto

Il testo può risultare troppo vicino al bordo della cella. Possiamo aggiungere uno spazio interno utilizzando padding.

td {
    padding: 8px;
}

Il valore 8px indica lo spazio tra il contenuto della cella e il suo bordo.

Il nostro CSS completo diventa:

table, td {
    border: 1px solid black;
}

table {
    border-collapse: collapse;
}

td {
    padding: 8px;
}
Per ora bastano tre proprietà
  • border → crea il bordo;
  • border-collapse → unisce i bordi vicini;
  • padding → crea spazio all’interno delle celle.

LABORATORIO

Costruiamo l’orario scolastico

Passo 1 - Creare il file

Creare un nuovo file e salvarlo con il nome:

orario.html

Passo 2 - Creare la pagina HTML

<!DOCTYPE html>

<html lang="it">

<head>

    <meta charset="UTF-8">

    <title>Il mio orario scolastico</title>

</head>


<body>

    <h1>Il mio orario scolastico</h1>


</body>

</html>

Passo 3 - Creare la tabella

Dopo il titolo h1, inserire:

<table>


</table>

La tabella esiste, ma per il momento è vuota.

Passo 4 - Creare la prima riga

La prima riga conterrà i giorni della settimana.

<tr>

    <td>Ora</td>
    <td>Lunedì</td>
    <td>Martedì</td>
    <td>Mercoledì</td>
    <td>Giovedì</td>
    <td>Venerdì</td>

</tr>
Fermati e osserva

Quanti elementi td sono presenti nella riga?

Quante colonne avrà quindi il nostro orario?

Passo 5 - Inserire la prima ora

Aggiungiamo una nuova riga:

<tr>

    <td>8:00</td>
    <td>Italiano</td>
    <td>Matematica</td>
    <td>Informatica</td>
    <td>Inglese</td>
    <td>Storia</td>

</tr>

Anche questa riga contiene 6 celle, quindi mantiene le stesse 6 colonne della prima riga.

Passo 6 - Continua tu

Aggiungi altre tre righe relative alle ore:

  • 9:00;
  • 10:00;
  • 11:00.

Scegli liberamente le materie da inserire.

Controlla

Ogni riga deve contenere 6 elementi td.

Passo 7 - Aggiungere i bordi

All’interno del tag <head>, aggiungi:

<style>

    table, td {
        border: 1px solid black;
    }

    table {
        border-collapse: collapse;
    }

    td {
        padding: 8px;
    }

</style>

Salva il file e aggiorna la pagina nel browser.

Risultato atteso

Ora devono essere chiaramente visibili le righe, le colonne e i bordi delle celle.

Passo 8 - Sperimentiamo con i bordi

Ora modifica il CSS e osserva cosa cambia nel browser.

  1. Cambia 1px in 3px.
    Che cosa cambia?
  2. Cambia black in blue.
    Che cosa cambia?
  3. Sostituisci solid con dashed.
    Come appare ora il bordo?
  4. Elimina temporaneamente:
    border-collapse: collapse;
    Che differenza noti?
  5. Cambia:
    padding: 8px;
    in:
    padding: 15px;
    Che cosa succede alle celle?

Sfida finale

Trasforma la tabella nell’orario della tua classe.

Inserisci le materie corrette e personalizza il bordo scegliendo:

  • lo spessore;
  • il tipo di linea;
  • il colore.

Errori comuni

Errore 1 - Inserire td fuori da tr

Questa struttura non è corretta:

<table>

    <td>Italiano</td>
    <td>Matematica</td>

</table>

Le celle devono appartenere a una riga.

La struttura corretta è:

<table>

    <tr>

        <td>Italiano</td>
        <td>Matematica</td>

    </tr>

</table>

Errore 2 - Dimenticare la chiusura di una riga

Quando apriamo un elemento <tr>, dobbiamo ricordarci di chiuderlo con </tr>.

Errore 3 - Numero diverso di celle

Se il nostro orario contiene 6 colonne, ogni riga dovrebbe contenere 6 celle.

<tr>

    <td>9:00</td>
    <td>Italiano</td>
    <td>Matematica</td>

</tr>

Questa riga contiene soltanto tre celle e quindi non completa le sei colonne previste dal nostro orario.

Verifica rapida

Domande di controllo
  1. Quale tag contiene l’intera tabella?
  2. Quale tag crea una riga?
  3. Quale tag crea una cella?
  4. Se una tabella contiene 4 elementi tr, quante righe contiene?
  5. Se ogni riga contiene 6 elementi td, quante colonne avrà la tabella?
  6. Dove devono essere inseriti gli elementi td?
  7. A cosa serve la proprietà CSS border?
  8. Che cosa indicano 1px, solid e black nella dichiarazione border: 1px solid black;?
  9. A cosa serve border-collapse: collapse;?