Documentation and examples for opt-in styling of tables (given their prevalent use in
JavaScript plugins) with Bootstrap.
Basic example
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
@twitter |
<table class="table">
<thead>
<tr>
<th>#</th>
<th>First</th>
<th>Last</th>
<th>Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th>1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th>2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th>3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Variants
Use contextual classes to color tables, table rows or individual cells.
Class |
Heading |
Heading |
Default |
Cell |
Cell |
Primary |
Cell |
Cell |
Secondary |
Cell |
Cell |
Success |
Cell |
Cell |
Danger |
Cell |
Cell |
Warning |
Cell |
Cell |
Info |
Cell |
Cell |
Light |
Cell |
Cell |
Dark |
Cell |
Cell |
<!-- On tables -->
<table class="table-primary">...</table>
<table class="table-secondary">...</table>
<table class="table-success">...</table>
<table class="table-danger">...</table>
<table class="table-warning">...</table>
<table class="table-info">...</table>
<table class="table-light">...</table>
<table class="table-dark">...</table>
<!-- On rows -->
<tr class="table-primary">...</tr>
<tr class="table-secondary">...</tr>
<tr class="table-success">...</tr>
<tr class="table-danger">...</tr>
<tr class="table-warning">...</tr>
<tr class="table-info">...</tr>
<tr class="table-light">...</tr>
<tr class="table-dark">...</tr>
<!-- On cells (`td` or `th`) -->
<tr>
<td class="table-primary">...</td>
<td class="table-secondary">...</td>
<td class="table-success">...</td>
<td class="table-danger">...</td>
<td class="table-warning">...</td>
<td class="table-info">...</td>
<td class="table-light">...</td>
<td class="table-dark">...</td>
</tr>
Accented tables
Striped rows
Use .table-striped
to add zebra-striping to any table row within the
<tbody>
.
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-striped">
...
</table>
These classes can also be added to table variants:
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-dark table-striped">
...
</table>
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-success table-striped">
...
</table>
Hoverable rows
Add .table-hover
to enable a hover state on table rows within a <tbody>
.
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-hover">
...
</table>
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-dark table-hover">
...
</table>
These hoverable rows can also be combined with the striped variant:
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-striped table-hover">
...
</table>
Active tables
Highlight a table row or cell by adding a .table-active
class.
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table">
<thead>
...
</thead>
<tbody>
<tr class="table-active">
...
</tr>
<tr>
...
</tr>
<tr>
<th>3</th>
<td colspan="2" class="table-active">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Table borders
Bordered tables
Add .table-bordered
for borders on all sides of the table and cells.
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-bordered">
...
</table>
Border color utilities can be added to change colors:
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-bordered border-primary">
...
</table>
Tables without borders
Add .table-borderless
for a table without borders.
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-borderless">
...
</table>
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-dark table-borderless">
...
</table>
Small tables
Add .table-sm
to make any .table
more compact by cutting all cell
padding
in half.
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table table-sm">
...
</table>
Anatomy
Table head
Similar to tables and dark tables, use the modifier classes .table-light
or .table-dark
to make <thead>
s appear light or dark gray.
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table">
<thead class="table-light">
...
</thead>
<tbody>
...
</tbody>
</table>
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table">
<thead class="table-dark">
...
</thead>
<tbody>
...
</tbody>
</table>
Table foot
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
Footer |
Footer |
Footer |
Footer |
<table class="table">
<thead>
...
</thead>
<tbody>
...
</tbody>
<tfoot>
...
</tfoot>
</table>
Captions
A <caption>
functions like a heading for a table. It helps users with screen readers
to find a table and understand what it’s about and decide if they want to read it.
List of users
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table">
<caption>List of users</caption>
<thead>
...
</thead>
<tbody>
...
</tbody>
</table>
You can also put the <caption>
on the top of the table with .caption-top
.
List of users
# |
First |
Last |
Handle |
1 |
Mark |
Otto |
@mdo |
2 |
Jacob |
Thornton |
@fat |
3 |
Larry the Bird |
the Bird |
@twitter |
<table class="table caption-top">
<caption>List of users</caption>
<thead>
...
</thead>
<tbody>
...
</tbody>
</table>
Always responsive
Across every breakpoint, use .table-responsive
for horizontally scrolling tables.
# |
Heading |
Heading |
Heading |
Heading |
Heading |
Heading |
Heading |
Heading |
1 |
Cell |
Cell |
Cell |
Cell |
Cell |
Cell |
Cell |
Cell |
2 |
Cell |
Cell |
Cell |
Cell |
Cell |
Cell |
Cell |
Cell |
3 |
Cell |
Cell |
Cell |
Cell |
Cell |
Cell |
Cell |
Cell |
<div class="table-responsive">
<table class="table">
...
</table>
</div>
Javascript Responsive Table
For mobile-compatible tables, add the .table-responsive-stack
class.
Open your browser in mobile mode.
Name |
Color |
Taste |
Apple |
Green and Red |
Sweet and Tart |
Banana |
Yellow |
Sweet and Mushy |
Mango |
Yellowish Green |
Tangy |
Orange |
Orange |
Sweet and Tangy |
Blueberry |
Blue |
Mild Sweetness |
<table class="table table-bordered table-striped table-responsive-stack">
<thead>
<tr>
<th>Name</th>
<th>Color</th>
<th>Taste</th>
</tr>
</thead>
<tbody>
<tr>
<td>Apple</td>
<td>Green and Red</td>
<td>Sweet and Tart</td>
</tr>
<tr>
<td>Banana</td>
<td>Yellow</td>
<td>Sweet and Mushy</td>
</tr>
<tr>
<td>Mango</td>
<td>Yellowish Green</td>
<td>Tangy</td>
</tr>
<tr>
<td>Orange</td>
<td>Orange</td>
<td>Sweet and Tangy</td>
</tr>
<tr>
<td>Blueberry</td>
<td>Blue</td>
<td>Mild Sweetness</td>
</tr>
</tbody>
</table>