Bootstrap 4 table classes are used to styling the tables such as changing the heading appearance, making the rows striped, adding the borders, etc. Bootstrap also provides classes for making tables responsive.
Simple Table:
The .table class is used to create a simple Bootstrap 4 table. This table has lightly padded cells and horizontal dividers. This class name is used with <table> tag to create a table.
Example:
<table class="table">
<thead>
<tr>
<th>Sr.No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Peter</td>
<td>mark@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>John</td>
<td>Wood</td>
<td>johnwood@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>Ronald</td>
<td>Parker</td>
<td>ronald@mail.com</td>
</tr>
</tbody>
</table>
Dark Table:
By using .table-dark class, you can create the black background of a table. Use .table-dark class within <table> tag.
Example:
<table class="table table-dark">
<thead>
<tr>
<th>Sr.No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Peter</td>
<td>mark@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>John</td>
<td>Wood</td>
<td>johnwood@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>Ronald</td>
<td>Parker</td>
<td>ronald@mail.com</td>
</tr>
</tbody>
</table>
Striped Table:
By using .table-striped class, you can create table with alternate background like zebra-stripes. Use the combination of .table and .table-striped classes within the <table> tag.
Example:
<table class="table table-striped">
<thead>
<tr>
<th>Sr.No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Peter</td>
<td>mark@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>John</td>
<td>Wood</td>
<td>johnwood@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>Ronald</td>
<td>Parker</td>
<td>ronald@mail.com</td>
</tr>
</tbody>
</table>
Note: For dark version of the stripped table adding an extra class .table-dark to the table.
Bordered and Borderless Table:
Use .table-bordered class to add border on all side of table and cell. If you don’t want to use border for a table, then use the .table-borderless class.
Example:
<table class="table table-bordered">
<thead>
<tr>
<th>Sr.No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Peter</td>
<td>mark@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>John</td>
<td>Wood</td>
<td>johnwood@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>Ronald</td>
<td>Parker</td>
<td>ronald@mail.com</td>
</tr>
</tbody>
</table>
Hover Rows:
By using .table-hover class, you can add light gray background-color to rows when mousing over the table rows. Use the combination of .table and .table-hover classes within the <table> tag.
Example:
<table class="table table-hover">
<thead>
<tr>
<th>Sr.No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Peter</td>
<td>mark@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>John</td>
<td>Wood</td>
<td>johnwood@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>Ronald</td>
<td>Parker</td>
<td>ronald@mail.com</td>
</tr>
</tbody>
</table>
Table Head Styles:
You can add different background colors for the table head using the .thead-light or .thead-dark classes. These classes are added within the <thead> element.
Example:
<table class="table">
<thead class="thead-light">
<tr>
<th>Sr.No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Peter</td>
<td>mark@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>John</td>
<td>Wood</td>
<td>johnwood@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>Ronald</td>
<td>Parker</td>
<td>ronald@mail.com</td>
</tr>
</tbody>
</table>
Small Table:
If you find a table has too much padding, you can half the padding by using bootstrap .table-sm class. Use the combination of table, table-bordered and table-sm classes within the <table> tag.
Example:
<table class="table table-sm">
<thead>
<tr>
<th>Sr.No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Mark</td>
<td>Peter</td>
<td>mark@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>John</td>
<td>Wood</td>
<td>johnwood@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>Ronald</td>
<td>Parker</td>
<td>ronald@mail.com</td>
</tr>
</tbody>
</table>
Contextual Classes:
The contextual classes can be used to apply background-color of different rows or any specific cell. These classes can also be applied to <tr>, <td> and <th>.
List of these classes are: .table-primary, .table-success, .table-info, .table-danger, .table-warning, .table-active, .table-secondary, .table-light, and .table-dark.
Example:
<table class="table">
<thead>
<tr class="table-primary">
<th>Sr.No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr class="table-secondary">
<td>1</td>
<td>Mark</td>
<td>Peter</td>
<td>mark@mail.com</td>
</tr>
<tr class="table-success">
<td>2</td>
<td>John</td>
<td>Wood</td>
<td>johnwood@mail.com</td>
</tr>
<tr class="table-danger">
<td>3</td>
<td>Ronald</td>
<td>Parker</td>
<td>ronald@mail.com</td>
</tr>
</tbody>
</table>
Responsive Tables:
To make any table responsive just place the table inside an <div> element and apply the class .table-responsive on it. This will make your table scrollable (horizontally) and hence fits your table in small devices also. Similarly, to make the table responsive depending upon the viewport size, use class table-responsive{-sm|-md|-lg|-xl}.
Example:
<div class="table-responsive">
<table class="table">
<thead>
<tr class="table-primary">
<th>Sr.No.</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr class="table-secondary">
<td>1</td>
<td>Mark</td>
<td>Peter</td>
<td>mark@mail.com</td>
</tr>
<tr class="table-success">
<td>2</td>
<td>John</td>
<td>Wood</td>
<td>johnwood@mail.com</td>
</tr>
<tr class="table-danger">
<td>3</td>
<td>Ronald</td>
<td>Parker</td>
<td>ronald@mail.com</td>
</tr>
</tbody>
</table>
</div>