How to Add Multiple <tbody> Elements in the Same Table
The HTML <tbody> element defines the body content of an HTML table and creates a separate semantic block in it.
A <table> can have multiple <tbody> elements each of them specifying a row group.In this snippet, we’ll show how to add multiple <tbody> elements in the same table.
Start with creating HTML.
Create HTML
- Use a <table> element and place a <thead> tag with <tr> and <th> elements inside the <table>.
- Add three <tbody> elements.
- Use <tr> elements with <td> elements within each <tbody> tag.
<table>
<thead>
<tr>
<th>Day</th>
<th>Month</th>
<th>Order</th>
</tr>
</thead>
<tbody>
<tr>
<td>1-10</td>
<td>June</td>
<td>20pcs</td>
</tr>
<tr>
<td>11-20</td>
<td>June</td>
<td>20pcs</td>
</tr>
<tr>
<td>21-30</td>
<td>June</td>
<td>20pcs</td>
</tr>
</tbody>
<tbody>
<tr>
<td>1-10</td>
<td>Jule</td>
<td>50pcs</td>
</tr>
<tr>
<td>11-20</td>
<td>Jule</td>
<td>50pcs</td>
</tr>
<tr>
<td>21-31</td>
<td>Jule</td>
<td>50pcs</td>
</tr>
</tbody>
<tbody>
<tr>
<td>1-10</td>
<td>August</td>
<td>100pcs</td>
</tr>
<tr>
<td>11-20</td>
<td>August</td>
<td>100pcs</td>
</tr>
<tr>
<td>21-31</td>
<td>August</td>
<td>100pcs</td>
</tr>
</tbody>
</table>
Add CSS
- Style the
elements of the by specifying the width, border-bottom, and font-weight properties. - Add the :nth-child(odd) pseudo-class to the <tbody> and set the background and border properties for it.
- Add the :nth-child(even) pseudo-class to the <tbody> and set the background and border properties for it.
thead th { width: 150px; border-bottom: solid 1px #000; font-weight: bold; } tbody:nth-child(odd) { background: #a8e3b6; border: solid 1px #000; } tbody:nth-child(even) { background: #c9d1cb; border: solid 1px #000; }
Now, try the full example.
Example of adding multiple <tbody> elements in the same table:
<!DOCTYPE html> <html> <head> <title>Title of the document</title> <style> table, table th, table td { border: 1px solid #cccccc; } thead th { width: 150px; border-bottom: solid 1px #000; font-weight: bold; } tbody:nth-child(odd) { background: #a8e3b6; border: solid 1px #000; } tbody:nth-child(even) { background: #c9d1cb; border: solid 1px #000; } </style> </head> <body> <table> <thead> <tr> <th>Day</th> <th>Month</th> <th>Order</th> </tr> </thead> <tbody> <tr> <td>1-10</td> <td>June</td> <td>20pcs</td> </tr> <tr> <td>11-20</td> <td>June</td> <td>20pcs</td> </tr> <tr> <td>21-30</td> <td>June</td> <td>20pcs</td> </tr> </tbody> <tbody> <tr> <td>1-10</td> <td>Jule</td> <td>50pcs</td> </tr> <tr> <td>11-20</td> <td>Jule</td> <td>50pcs</td> </tr> <tr> <td>21-31</td> <td>Jule</td> <td>50pcs</td> </tr> </tbody> <tbody> <tr> <td>1-10</td> <td>August</td> <td>100pcs</td> </tr> <tr> <td>11-20</td> <td>August</td> <td>100pcs</td> </tr> <tr> <td>21-31</td> <td>August</td> <td>100pcs</td> </tr> </tbody> </table> </body> </html>
Result
Day Month Order 1-10 June 20pcs 11-20 June 20pcs 21-30 June 20pcs 1-10 Jule 50pcs 11-20 Jule 50pcs 21-31 Jule 50pcs 1-10 August 100pcs 11-20 August 100pcs 21-31 August 100pcs TagsSorry about thatThanks for your feedback!Thanks for your feedback!Do you find this helpful?