HTML <tbody> Tag
The HTML <tbody>
tag is used to group the body content of a table. It is placed within the <table>
element and contains rows (<tr>
) with table data (<td>
) or header cells (<th>
). The <tbody>
tag helps in structuring and organizing the table into distinct sections, especially when combined with <thead>
and <tfoot>
.
Although the <tbody>
tag is optional, it is useful for styling, scripting, and improving table semantics.
Basic Syntax of HTML <tbody> Tag
The basic structure of a table with the <tbody>
tag is:
<table>
<thead>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Data 1</td>
<td>Data 2</td>
</tr>
</tbody>
</table>
The <tbody>
tag wraps the rows containing the table’s main data.
Example of a Table Using the <tbody> Tag
Here’s a simple example of a table with <thead>
, <tbody>
, and <tfoot>
:
index.html
<!DOCTYPE html>
<html>
<body>
<h2>Sales Data</h2>
<table border="1">
<thead>
<tr>
<th>Product</th>
<th>Quantity</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Laptops</td>
<td>50</td>
<td>$500</td>
</tr>
<tr>
<td>Phones</td>
<td>100</td>
<td>$300</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2">Total</td>
<td>$80,000</td>
</tr>
</tfoot>
</table>
</body>
</html>
Explanation: The <thead>
contains table headers, the <tbody>
contains the data rows, and the <tfoot>
contains summary information.
Styling the <tbody> Tag with CSS
The <tbody>
tag can be styled separately from other table sections to highlight the data rows:
index.html
<!DOCTYPE html>
<html>
<head>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: center;
}
thead th {
font-weight: bold;
}
tbody tr:nth-child(odd) {
background-color: #f9f9f9;
}
tbody tr:nth-child(even) {
background-color: #dfdfdf;
}
</style>
</head>
<body>
<h2>Styled Table with tbody</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Alice</td>
<td>30</td>
<td>New York</td>
</tr>
<tr>
<td>Bob</td>
<td>25</td>
<td>Los Angeles</td>
</tr>
<tr>
<td>Charlie</td>
<td>24</td>
<td>New York</td>
</tr>
<tr>
<td>Distrob</td>
<td>27</td>
<td>Los Angeles</td>
</tr>
</tbody>
</table>
</body>
</html>
Result: The rows in the <tbody>
section are styled with alternating background colors for better readability.
Practical Applications of the <tbody> Tag
- Organizing Data: Use
<tbody>
to group rows in large tables, making them easier to manage and style. - Styling: Apply specific styles to the data rows while keeping headers and footers separate.
- Scripting: Target the
<tbody>
element for dynamic table manipulation using JavaScript. - Accessibility: Improve table semantics by explicitly defining table sections.