
Per specificare i bordi della tabella in CSS, si usa la proprietà border.
L'esempio successivo specifica un bordo nero per gli elementi <table>, <th> e <td>:
table, th, td {
border: 1px solid black;
}
La precedente tabella può sembrare piccola in alcuni casi. Se si necessita di una tabella che si deve espandere a schermo (larghezza) intero, aggiungere width: 100% all'elemento <table>:
table {
width: 100%;
}
La proprietà border-collapse viene usata per impostare se i bordi della tabella devono fondersi in un bordo singolo:
table {
border-collapse: collapse;
}
Se si vuole solo un bordo attorno alla tabella, si specifica soltanto la proprietà border per <table>:
table {
border: 1px solid black;
}
La larghezza e l'altezza di una tabella sono definite dalle proprietà width e height.
Il prossimo esempio imposta la larghezza della tabella a 100%, e l'altezza dell'elemento <th> a 70px:
table {
width: 100%;
}
th {
height: 70px;
}
Per creare una tabella che dovrebbe espandersi solo su mezza pagina, si usa width: 50% :

table {
width: 50%;
}
th {
height: 70px;
}
La proprietà text-align imposta l'allineamento orizzontale (come sinistro, destro o centrato) del contenuto in <th> o <td>.
Di default, i contenuti degl'elementi <th> sono centrati e i contenuti degl'elementi <td> sono allineati a sinistra.
Per centrare anche il contenuto degl'elementi <td>, si usa text-align: center :
td {
text-align: center;
}
Per allineare a sinistra il contenuto, si forza l'allineamento dell'elemento <th> con la proprietà text-align: left :

th {
text-align: left;
}
La proprietà vertical-align imposta l'allineamento verticale (come superiore, inferiore o medio) del contenuto di <th> o <td>.
Di default, l'allineamento verticale del contenuto in una tabella è middle (sia per gli elementi <th> e <td>).
L'esempio seguente imposta l'allineamento del testo verticale a bottom per l'elemento <td>:
td {
height: 50px;
vertical-align: bottom;
}
Per controllare lo spazio tra il bordo e il contenuto di una tabella, si usa la proprietà padding sugl'elementi <th> e <td> :
th, td {
padding: 15px;
text-align: left;
}

Si aggiunge la proprietà border-bottom a <th> e <td> per separatori orizzontali:
th, td {
border-bottom: 1px solid #ddd;
}
Si usa il selettore :hover su <tr> per evidenziare la riga della tabella al passaggio del mouse:
tr:hover {background-color: #f5f5f5;}
Per le tabelle a strisce zebrate, si usa il selettore nth-child() e aggiungere un background-color a tutte le righe pari (o dispari) della tabella:
tr:nth-child(even) {background-color: #f2f2f2;}
L'esempio seguente specifica il colore di sfondo e il colore del testo dell'elemento <th>:
th {
background-color: #4CAF50;
color: white;
}
Una tabella responsive mostrerà una barra di scorrimento orizzontale se lo schermo è troppo piccolo per visualizzare il contenuto completo:
Si aggiunge un elemento contenitore (come <div> con overflow-x: auto attorno all'elemento <table> per renderlo responsive:
<div style="overflow-x:auto;">
<table>
... table content ...
</table>
</div>
| Proprietà | Descrizione |
|---|---|
| border | Imposta tutte le proprietà del bordo in una dichiarazione |
| border-collapse | Specifica se i bordi della tabella devono collassare o no |
| border-spacing | Specifica la distanza tra i bordi delle celle adiacenti |
| caption-side | Specifica il posizionamento della didascalia di una tabella |
| empty-cells | Specifica se mostrare i bordi e lo sfondo sulle celle vuote in una tabella o no |
| table-layout | Imposta l'algoritmo di layout da usare per una tabella |