Om een tabel te maken in HTML, gebruik je de <table>-tag. Binnen de <table>-tag gebruik je voor elke rij de <tr>-tag (table row). In elke rij voorzie je cellen. Er zijn twee soorten cellen. Met de <td>-tag (table data) maak je gewone cellen. Met de <th> (table header) maak je een cel die als hoofding dient voor de kolom. De basis-opmaak voor de twee soorten cellen is verschillend.
Optioneel kan je de tags <thead>, <tbody>, en <tfoot> gebruiken om je tabel logischer, beter gestructureerd en toegankelijker te maken. De <thead>-tag wordt gebruikt om de kop (header) van een tabel te definiëren. De <tbody>-tag bevat de hoofdinhoud van de tabel. De <tfoot>-tag wordt gebruikt om een voetsectie aan de tabel toe te voegen.
Bijvoorbeeld:
<table>
<thead>
<tr>
<th>Hoofding 1, Cel 1</th>
<th>Hoofding 1, Cel 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Rij 1, Cel 1</td>
<td>Rij 1, Cel 2</td>
</tr>
<tr>
<td>Rij 2, Cel 1</td>
<td>Rij 2, Cel 2</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Voettekst 1, Cel 1</td>
<td>Voettekst 1, Cel 2</td>
</tr>
</tfoot>
</table>
Deze tabel heeft een hoofding, die één rij heeft met de twee kolomtitels. De hoofdinhoud van de tabel bevat twee rijen met elk twee kolommen. De voettekst heeft ook één rij met twee cellen. Standaard staan er geen tabelranden, dat moet je later zelf toevoegen met CSS.

| Begintag | Eindtag | Afkomst | Betekenis |
|---|---|---|---|
<table> |
</table> |
table | Tabel |
<tr> |
</tr> |
table row | Rij in een tabel |
<th> |
</th> |
table header | Cel met kolomtitel (hoofding) in een tabel. Dit wordt meestal in een andere opmaak getoond. |
<td> |
</td> |
table data | Cel met informatie in een tabel |
<thead> |
</thead> |
table head | Bevat de kop (header) van een tabel met kolomtitels. |
<tbody> |
</tbody> |
table body | Bevat de hoofdinhoud (data) van een tabel, meestal rijen met gegevens. |
<tfoot> |
</tfoot> |
table foot | Bevat de voet van de tabel, vaak gebruikt voor samenvattingen of totalen. |