Tablas
Documentación y ejemplos para el estilo opcional de tablas (dado su uso frecuente en complementos de JavaScript) con Bootstrap.
Ejemplos
Debido al uso generalizado de tablas en widgets de terceros como
calendarios y selectores de fechas, hemos diseñado nuestras tablas para que sean
opcionales
.
Simplemente agregue la clase base
.table
a cualquiera
<table>
, luego amplíe con estilos personalizados o nuestras diversas clases de
modificadores incluidas.
Usando el marcado de tabla más básico, así es como
.table
se ven las tablas basadas en Bootstrap.
Todos los estilos de tabla se heredan en Bootstrap 4
, lo que significa que cualquier tabla anidada tendrá el mismo estilo
que la
tabla
principal.
# | primero | Último | Encargarse de |
---|---|---|---|
1 | marca | Otón | @mdo |
2 | Jacob | Thornton | @grasa |
3 | Larry | el pájaro | @gorjeo |
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
También puede invertir los colores, con texto claro sobre fondos
oscuros, con
.table-dark
.
# | primero | Último | Encargarse de |
---|---|---|---|
1 | marca | Otón | @mdo |
2 | Jacob | Thornton | @grasa |
3 | Larry | el pájaro | @gorjeo |
<table class="table table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Opciones de cabecera de mesa
Similar a las tablas y tablas oscuras, use las clases modificadoras
.thead-light
o
.thead-dark
para hacer que los
<thead>
s aparezcan en gris claro u oscuro.
# | primero | Último | Encargarse de |
---|---|---|---|
1 | marca | Otón | @mdo |
2 | Jacob | Thornton | @grasa |
3 | Larry | el pájaro | @gorjeo |
# | primero | Último | Encargarse de |
---|---|---|---|
1 | marca | Otón | @mdo |
2 | Jacob | Thornton | @grasa |
3 | Larry | el pájaro | @gorjeo |
<table class="table">
<thead class="thead-dark">
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
<table class="table">
<thead class="thead-light">
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Filas de rayas
Úselo
.table-striped
para agregar rayas de cebra a cualquier fila de la tabla dentro del
<tbody>
.
# | primero | Último | Encargarse de |
---|---|---|---|
1 | marca | Otón | @mdo |
2 | Jacob | Thornton | @grasa |
3 | Larry | el pájaro | @gorjeo |
<table class="table table-striped">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
# | primero | Último | Encargarse de |
---|---|---|---|
1 | marca | Otón | @mdo |
2 | Jacob | Thornton | @grasa |
3 | Larry | el pájaro | @gorjeo |
<table class="table table-striped table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Mesa bordeada
Agregue
.table-bordered
para bordes en todos los lados de la tabla y las celdas.
# | primero | Último | Encargarse de |
---|---|---|---|
1 | marca | Otón | @mdo |
2 | Jacob | Thornton | @grasa |
3 | Larry el pájaro | @gorjeo |
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
# | primero | Último | Encargarse de |
---|---|---|---|
1 | marca | Otón | @mdo |
2 | Jacob | Thornton | @grasa |
3 | Larry el pájaro | @gorjeo |
<table class="table table-bordered table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Mesa sin bordes
Agregue
.table-borderless
para una mesa sin bordes.
# | primero | Último | Encargarse de |
---|---|---|---|
1 | marca | Otón | @mdo |
2 | Jacob | Thornton | @grasa |
3 | Larry el pájaro | @gorjeo |
<table class="table table-borderless">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
.table-borderless
can also be used on dark tables.
# | First | Last | Handle |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
<table class="table table-borderless table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</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 |
<table class="table table-hover">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
# | First | Last | Handle |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
<table class="table table-hover table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Small table
Add .table-sm
to make tables more compact by cutting
cell padding in half.
# | First | Last | Handle |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
<table class="table table-sm">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
# | First | Last | Handle |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
<table class="table table-sm table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2">Larry the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Contextual classes
Use contextual classes to color table rows or individual cells.
Class | Heading | Heading |
---|---|---|
Active | Cell | Cell |
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 rows -->
<tr class="table-active">...</tr>
<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-active">...</td>
<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>
Regular table background variants are not available with the dark table, however, you may use text or background utilities to achieve similar styles.
# | Heading | Heading |
---|---|---|
1 | Cell | Cell |
2 | Cell | Cell |
3 | Cell | Cell |
4 | Cell | Cell |
5 | Cell | Cell |
6 | Cell | Cell |
7 | Cell | Cell |
8 | Cell | Cell |
9 | Cell | Cell |
<!-- On rows -->
<tr class="bg-primary">...</tr>
<tr class="bg-success">...</tr>
<tr class="bg-warning">...</tr>
<tr class="bg-danger">...</tr>
<tr class="bg-info">...</tr>
<!-- On cells (`td` or `th`) -->
<tr>
<td class="bg-primary">...</td>
<td class="bg-success">...</td>
<td class="bg-warning">...</td>
<td class="bg-danger">...</td>
<td class="bg-info">...</td>
</tr>
Conveying meaning to assistive technologies
Using color to add meaning only provides a visual indication, which will not be conveyed to users of
assistive technologies – such as screen readers. Ensure that information denoted by the color is either
obvious from the content itself (e.g. the visible text), or is included through alternative means, such as
additional text hidden with the .sr-only
class.
Create responsive tables by wrapping any .table
with
.table-responsive{-sm|-md|-lg|-xl}
, making the table
scroll horizontally at each max-width
breakpoint of up
to (but not including) 576px, 768px, 992px, and 1120px, respectively.
Note that since browsers do not currently support range
context queries, we work around the limitations of min-
and max-
prefixes and viewports with fractional widths
(which can occur under certain conditions on high-dpi devices, for instance) by using values with higher
precision for these comparisons.
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.
# | First | Last | Handle |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
<table class="table">
<caption>List of users</caption>
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<th scope="row">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<th scope="row">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
Responsive tables
Responsive tables allow tables to be scrolled horizontally with ease. Make any table responsive across all
viewports by wrapping a .table
with .table-responsive
. Or, pick a maximum breakpoint with
which to have a responsive table up to by using .table-responsive{-sm|-md|-lg|-xl}
.
Vertical clipping/truncation
Responsive tables make use of overflow-y: hidden
,
which clips off any content that goes beyond the bottom or top edges of the table. In particular, this can
clip off dropdown menus and other third-party widgets.
Always responsive
Across every breakpoint, use .table-responsive
for
horizontally scrolling tables.
# | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading |
---|---|---|---|---|---|---|---|---|---|
1 | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell |
2 | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell |
3 | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell | Cell |
<div class="table-responsive">
<table class="table">
...
</table>
</div>
Breakpoint specific
Use .table-responsive{-sm|-md|-lg|-xl}
as needed to
create responsive tables up to a particular breakpoint. From that breakpoint and up, the table will behave
normally and not scroll horizontally.
Estas tablas pueden aparecer rotas hasta que sus estilos de respuesta se apliquen en anchos de ventana específicos.
# | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda |
---|---|---|---|---|---|---|---|---|
1 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
2 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
3 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
<div class="table-responsive-sm">
<table class="table">
...
</table>
</div>
# | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda |
---|---|---|---|---|---|---|---|---|
1 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
2 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
3 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
<div class="table-responsive-md">
<table class="table">
...
</table>
</div>
# | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda |
---|---|---|---|---|---|---|---|---|
1 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
2 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
3 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
<div class="table-responsive-lg">
<table class="table">
...
</table>
</div>
# | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda | Bóveda |
---|---|---|---|---|---|---|---|---|
1 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
2 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
3 | Celda | Celda | Celda | Celda | Celda | Celda | Celda | Celda |
<div class="table-responsive-xl">
<table class="table">
...
</table>
</div>