Table Head, Body & Footer in HTML (<thead>, <tbody>, <tfoot>)
When a table becomes large and complex, it is a good practice to divide it into three sections. This makes the table more organized, accessible, and SEO-friendly.
1. <thead> – Table Head
- Defines the heading section of a table.
- Usually contains one row with
<th>(table header cells). - Helps browsers, screen readers, and search engines understand the title of each column.
Example:
<table border="1">
<thead>
<tr>
<th>Product</th>
<th>Price</th>
<th>Quantity</th>
</tr>
</thead>
</table>Output :

<tbody> – Table Body
- Contains the main content/data of the table.
- Holds multiple rows (
<tr>) with data cells (<td>). - Even if
<tbody>is not written, browsers automatically treat all rows as part of the body.
Example:
<table border="1">
<tbody>
<tr>
<td>Laptop</td>
<td>$800</td>
<td>10</td>
</tr>
<tr>
<td>Phone</td>
<td>$500</td>
<td>20</td>
</tr>
</tbody>
</table>Output :

<tfoot> – Table Footer
- Defines the footer section of the table.
- Usually contains summary rows (like totals, averages, or notes).
- Appears after
<tbody>in HTML code but may be displayed at the bottom of the table.
Example:
<table border="1">
<tfoot>
<tr>
<td colspan="2">Total Quantity</td>
<td>30</td>
</tr>
</tfoot>
</table>Output :

Complete Example with <thead>,<tbody>,<tfoot> :
<table border="1">
<thead>
<tr>
<th>Product</th>
<th>Price</th>
<th>Quantity</th>
</tr>
</thead>
<tbody>
<tr>
<td>Laptop</td>
<td>$800</td>
<td>10</td>
</tr>
<tr>
<td>Phone</td>
<td>$500</td>
<td>20</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2">Total Quantity</td>
<td>30</td>
</tr>
</tfoot>
</table>Output :

