Documentación y ejemplos para el estilo opcional de tablas (dado su uso prevalente en complementos de JavaScript) con Bootstrap.
En esta página
Resumen
Debido al uso generalizado de los elementos <table> en widgets de terceros como calendarios y selectores de fechas, las tablas de Bootstrap son opcionales (opt-in). Agrega la clase base .table a cualquier <table>, luego extiéndela con nuestras clases modificadoras opcionales o estilos personalizados. Todos los estilos de tabla no se heredan en Bootstrap, lo que significa que las tablas anidadas se pueden diseñar de forma independiente de la tabla madre.
Utilizando el marcado de tabla más básico, así es como se ven las tablas basadas en .table en Bootstrap.
Usa clases contextuales para colorear tablas, filas de tabla o celdas individuales.
¡Atención! Debido al CSS más complicado que se utiliza para generar nuestras variantes de tabla, es muy probable que no tengan un estilo adaptativo de modo de color hasta la versión 6.
Clase
Encabezado
Encabezado
Por defecto
Celda
Celda
Primary
Celda
Celda
Secondary
Celda
Celda
Success
Celda
Celda
Danger
Celda
Celda
Warning
Celda
Celda
Info
Celda
Celda
Light
Celda
Celda
Dark
Celda
Celda
<!-- En tablas --><tableclass="table-primary">...</table><tableclass="table-secondary">...</table><tableclass="table-success">...</table><tableclass="table-danger">...</table><tableclass="table-warning">...</table><tableclass="table-info">...</table><tableclass="table-light">...</table><tableclass="table-dark">...</table><!-- En filas --><trclass="table-primary">...</tr><trclass="table-secondary">...</tr><trclass="table-success">...</tr><trclass="table-danger">...</tr><trclass="table-warning">...</tr><trclass="table-info">...</tr><trclass="table-light">...</tr><trclass="table-dark">...</tr><!-- En celdas (`td` o `th`) --><tr><tdclass="table-primary">...</td><tdclass="table-secondary">...</td><tdclass="table-success">...</td><tdclass="table-danger">...</td><tdclass="table-warning">...</td><tdclass="table-info">...</td><tdclass="table-light">...</td><tdclass="table-dark">...</td></tr>
Consejo de accesibilidad: El uso del color para agregar significado solo proporciona una indicación visual, que no se transmitirá a los usuarios de tecnologías de asistencia como los lectores de pantalla. Asegúrate de que el significado sea obvio a partir del propio contenido (por ejemplo, el texto visible con un suficiente contraste de color) o se incluya a través de medios alternativos, como texto adicional oculto con la clase .visually-hidden.
Tablas acentuadas
Filas a rayas
Usa .table-striped para agregar rayas de cebra a cualquier fila de tabla dentro del <tbody>.
#
Nombre (First)
Apellido (Last)
Usuario (Handle)
1
Mark
Otto
@mdo
2
Jacob
Thornton
@fat
3
John
Doe
@social
<tableclass="table table-striped">
...
</table>
Columnas a rayas
Usa .table-striped-columns para agregar rayas de cebra a cualquier columna de tabla.
Comenzamos estableciendo el fondo de una celda de tabla con la propiedad personalizada --bs-table-bg. Luego, todas las variantes de tabla establecen esa propiedad personalizada para colorear las celdas de la tabla. De esta manera, no tenemos problemas si se usan colores semitransparentes como fondos de tabla.
Luego agregamos una sombra de caja interna (inset box shadow) en las celdas de la tabla con box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); para colocar capas encima de cualquier background-color especificado. Utiliza una cascada personalizada para anular el box-shadow, independientemente de la especificidad CSS. Debido a que usamos una gran propagación y sin desenfoque, el color será monótono. Dado que --bs-table-accent-bg está establecido en transparent de forma predeterminada, no tenemos una sombra de caja predeterminada.
Cuando se agregan las clases .table-striped, .table-striped-columns, .table-hover o .table-active, se establece --bs-table-bg-type o --bs-table-bg-state (por defecto establecido en initial) a un color semitransparente (--bs-table-striped-bg, --bs-table-active-bg o --bs-table-hover-bg) para colorear el fondo y anular el --bs-table-accent-bg predeterminado.
Para cada variante de tabla, generamos un color --bs-table-accent-bg con el mayor contraste dependiendo de ese color. Por ejemplo, el color de acento para .table-primary es más oscuro, mientras que .table-dark tiene un color de acento más claro.
Los colores del texto y del borde se generan de la misma manera, y sus colores se heredan por defecto.
Agrega un borde más grueso y oscuro entre los grupos de tablas (<thead>, <tbody> y <tfoot>) con .table-group-divider. Personaliza el color cambiando border-top-color (para el cual no proporcionamos actualmente una clase de utilidad).
Las celdas de la tabla de <thead> siempre están alineadas verticalmente en la parte inferior. Las celdas de la tabla en <tbody> heredan su alineación de <table> y están alineadas en la parte superior por defecto. Usa las clases de alineación vertical para volver a alinearlas donde sea necesario.
Encabezado 1
Encabezado 2
Encabezado 3
Encabezado 4
Esta celda hereda vertical-align: middle; de la tabla
Esta celda hereda vertical-align: middle; de la tabla
Esta celda hereda vertical-align: middle; de la tabla
Este es un texto de marcador de posición, destinado a ocupar una buena cantidad de espacio vertical, para demostrar cómo funciona la alineación vertical en las celdas anteriores.
Esta celda hereda vertical-align: bottom; de la fila de la tabla
Esta celda hereda vertical-align: bottom; de la fila de la tabla
Esta celda hereda vertical-align: bottom; de la fila de la tabla
Este es un texto de marcador de posición, destinado a ocupar una buena cantidad de espacio vertical, para demostrar cómo funciona la alineación vertical en las celdas anteriores.
Esta celda hereda vertical-align: middle; de la tabla
Esta celda hereda vertical-align: middle; de la tabla
Esta celda está alineada en la parte superior.
Este es un texto de marcador de posición, destinado a ocupar una buena cantidad de espacio vertical, para demostrar cómo funciona la alineación vertical en las celdas anteriores.
<divclass="table-responsive"><tableclass="table align-middle"><thead><tr>
...
</tr></thead><tbody><tr>
...
</tr><trclass="align-bottom">
...
</tr><tr><td>...</td><td>...</td><tdclass="align-top">Esta celda está alineada en la parte superior.</td><td>...</td></tr></tbody></table></div>
Anidación
Los estilos de borde, los estilos activos y las variantes de tabla no son heredados por las tablas anidadas.
Para evitar que cualquier estilo se filtre a las tablas anidadas, utilizamos el selector combinador secundario (>) en nuestro CSS. Dado que necesitamos apuntar a todas las td y th en el thead, tbody y tfoot, nuestro selector se vería bastante largo sin él. Como tal, utilizamos el selector de apariencia bastante extraña .table > :not(caption) > * > * para apuntar a todas las td y th de la .table, pero a ninguna de las posibles tablas anidadas.
Ten en cuenta que si agregas <tr> como hijos directos de una tabla, esos <tr> se envolverán en un <tbody> por defecto, lo que hace que nuestros selectores funcionen según lo previsto.
Anatomía
Cabecera de la tabla
De manera similar a las tablas y tablas oscuras, usa las clases modificadoras .table-light o .table-dark para hacer que las <thead> aparezcan de color gris claro u oscuro.
Una <caption> funciona como un encabezado para una tabla. Ayuda a los usuarios con lectores de pantalla a encontrar una tabla, comprender de qué se trata y decidir si desean leerla.
Lista de usuarios
#
Nombre (First)
Apellido (Last)
Usuario (Handle)
1
Mark
Otto
@mdo
2
Jacob
Thornton
@fat
3
John
Doe
@social
<tableclass="table table-sm"><caption>Lista de usuarios</caption><thead>
...
</thead><tbody>
...
</tbody></table>
También puedes colocar la <caption> en la parte superior de la tabla con .caption-top.
Lista de usuarios
#
Nombre
Apellido
Usuario
1
Mark
Otto
@mdo
2
Jacob
Thornton
@fat
3
John
Doe
@social
html
<tableclass="table caption-top"><caption>Lista de usuarios</caption><thead><tr><thscope="col">#</th><thscope="col">Nombre</th><thscope="col">Apellido</th><thscope="col">Usuario</th></tr></thead><tbody><tr><thscope="row">1</th><td>Mark</td><td>Otto</td><td>@mdo</td></tr><tr><thscope="row">2</th><td>Jacob</td><td>Thornton</td><td>@fat</td></tr><tr><thscope="row">3</th><td>John</td><td>Doe</td><td>@social</td></tr></tbody></table>
Tablas responsivas
Las tablas responsivas permiten desplazarse horizontalmente por las tablas con facilidad. Haz que cualquier tabla sea responsiva en todos los viewports envolviendo una .table con .table-responsive. O bien, elige un punto de interrupción (breakpoint) máximo con el que tener una tabla responsiva utilizando .table-responsive{-sm|-md|-lg|-xl|-xxl}.
Recorte/truncamiento vertical
Las tablas responsivas hacen uso de overflow-y: hidden, que recorta cualquier contenido que vaya más allá de los bordes inferior o superior de la tabla. In particular, esto puede recortar menús desplegables y otros widgets de terceros.
Siempre responsivo
En cada punto de interrupción, utiliza .table-responsive para tablas con desplazamiento horizontal.
Usa .table-responsive{-sm|-md|-lg|-xl|-xxl} según sea necesario para crear tablas responsivas hasta un punto de interrupción en particular. A partir de ese punto de interrupción y superior, la tabla se comportará normalmente y no se desplazará horizontalmente.
Estas tablas pueden parecer rotas hasta que sus estilos responsivos se apliquen en anchos de viewport específicos.
Las variables de factor ($table-striped-bg-factor, $table-active-bg-factor y $table-hover-bg-factor) se utilizan para determinar el contraste en las variantes de tabla.
Además de las variantes de tabla clara y oscura, los colores del tema se aclaran mediante la variable $table-bg-scale.