Documentación y ejemplos para el estilo opt-in de tablas (dado su uso prevalente en
plugins de JavaScript) con Bootstrap.
On this page
Descripción general
Debido al uso generalizado de elementos <table> en widgets de terceros
como calendarios y selectores de fecha, las tablas de Bootstrap son opt-in. Añade la clase
base .table a cualquier <table>, luego extiéndela con nuestras clases
modificadoras opcionales o estilos personalizados. Ningún estilo de tabla se hereda en Bootstrap, lo que
significa que cualquier tabla anidada puede estilarse de forma independiente del padre.
Usando 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 complejo usado para generar nuestras
variantes de tabla, lo más probable es que no vean estilos adaptativos de modo de color hasta v6.
Clase
Encabezado
Encabezado
Predeterminado
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
<!-- On tables --><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><!-- On rows --><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><!-- On cells (`td` or `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: Usar color para añadir significado solo
proporciona una indicación visual, que no se transmitirá a los usuarios de tecnologías de asistencia como
lectores de pantalla. Asegúrate de que el significado sea obvio por el contenido mismo (p. ej., el texto
visible con un suficiente
contraste de color) o se incluya mediante medios alternativos, como texto adicional oculto con la
clase .visually-hidden.
Tablas acentuadas
Filas rayadas
Usa .table-striped para añadir rayado de cebra a cualquier fila de tabla
dentro del <tbody>.
#
Primero
Último
Handle
1
Mark
Otto
@mdo
2
Jacob
Thornton
@fat
3
John
Doe
@social
<tableclass="table table-striped">
...
</table>
Columnas rayadas
Usa .table-striped-columns para añadir rayado de cebra a cualquier columna de
la tabla.
Empezamos estableciendo el fondo de una celda de tabla con la propiedad personalizada
--bs-table-bg. Todas las variantes de tabla luego 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 añadimos un box shadow inset 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 superponerlo sobre cualquier background-color especificado. Usa una cascada personalizada
para sobrescribir el box-shadow, independientemente de la especificidad CSS. Como usamos un
spread enorme y sin blur, el color será monótono. Dado que --bs-table-accent-bg está
establecido en transparent por defecto, no tenemos un box shadow predeterminado.
Cuando se añaden las clases .table-striped,
.table-striped-columns, .table-hover o .table-active, ya sea
--bs-table-bg-type o --bs-table-bg-state (por defecto establecido en
initial) se establecen en un color semitransparente (--bs-table-striped-bg,
--bs-table-active-bg o --bs-table-hover-bg) para colorear el fondo y sobrescribir
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 de texto y borde se generan de la misma manera, y sus colores se heredan por
defecto.
Añade un borde más grueso y oscuro entre los grupos de la tabla—<thead>,
<tbody> y <tfoot>—con .table-group-divider. Personaliza el
color cambiando el border-top-color (para el cual actualmente no proporcionamos una clase de
utilidad en este momento).
Las celdas de tabla del <thead> siempre están alineadas verticalmente
hacia abajo. Las celdas de tabla del <tbody> heredan su alineación del
<table> y están alineadas hacia arriba por defecto. Usa las clases de alineación vertical para realinear 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 algo de texto de marcador de posición, destinado a ocupar bastante
espacio vertical, para demostrar cómo funciona la alineación vertical en las celdas precedentes.
Esta celda hereda vertical-align: bottom; de la fila de tabla
Esta celda hereda vertical-align: bottom; de la fila de tabla
Esta celda hereda vertical-align: bottom; de la fila de tabla
Este es algo de texto de marcador de posición, destinado a ocupar bastante
espacio vertical, para demostrar cómo funciona la alineación vertical en las celdas precedentes.
Esta celda hereda vertical-align: middle; de la tabla
Esta celda hereda vertical-align: middle; de la tabla
Esta celda está alineada arriba.
Este es algo de texto de marcador de posición, destinado a ocupar bastante
espacio vertical, para demostrar cómo funciona la alineación vertical en las celdas precedentes.
<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">This cell is aligned to the top.</td><td>...</td></tr></tbody></table></div>
Anidamiento
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, usamos el
selector combinador hijo (>) en nuestro CSS. Como necesitamos seleccionar todos los
td y th en el thead, tbody, y tfoot, nuestro
selector sería bastante largo sin él. Por ello, usamos el selector
.table > :not(caption) > * > *, que parece algo extraño, para seleccionar todos los
td y th del .table, pero ninguno de las posibles tablas anidadas.
Ten en cuenta que si añades <tr> como hijos directos de una tabla, esos
<tr> se envolverán en un <tbody> por defecto, haciendo así que nuestros
selectores funcionen como se espera.
Anatomía
Encabezado de tabla
De forma similar a las tablas y las tablas oscuras, usa las clases modificadoras
.table-light o .table-dark para que los <thead> aparezcan en gris
claro u oscuro.
Un <caption> funciona como un encabezado para una tabla. Ayuda a los
usuarios con lectores de pantalla a encontrar una tabla y entender de qué trata y decidir si quieren leerla.
Lista de usuarios
#
Primero
Último
Handle
1
Mark
Otto
@mdo
2
Jacob
Thornton
@fat
3
John
Doe
@social
<tableclass="table table-sm"><caption>List of users</caption><thead>
...
</thead><tbody>
...
</tbody></table>
También puedes poner el <caption> en la parte superior de la tabla con
.caption-top.
Lista de usuarios
#
Primero
Último
Handle
1
Mark
Otto
@mdo
2
Jacob
Thornton
@fat
3
John
Doe
@social
html
<tableclass="table caption-top"><caption>List of users</caption><thead><tr><thscope="col">#</th><thscope="col">First</th><thscope="col">Last</th><thscope="col">Handle</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 responsive
Las tablas responsivas permiten desplazar las tablas horizontalmente con facilidad. Haz
cualquier tabla responsiva en todos los viewports envolviendo un .table con
.table-responsive. O elige un breakpoint máximo hasta el cual tener una tabla responsiva usando
.table-responsive{-sm|-md|-lg|-xl|-xxl}.
Recorte/truncamiento vertical
Las tablas responsivas hacen uso de overflow-y: hidden, lo cual recorta
cualquier contenido que sobresalga de los bordes inferior o superior de la tabla. En particular, esto puede
recortar menús desplegables y otros widgets de terceros.
Siempre responsive
En todos los breakpoints, usa .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 breakpoint particular. A partir de ese breakpoint hacia arriba, 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 & $table-hover-bg-factor) se usan para determinar el
contraste en las variantes de tabla.
Aparte de las variantes de tabla clara y oscura, los colores del tema se aclaran con la
variable $table-bg-scale.
Traducción mantenida por Esdocu. Visita esdocu.com
para ver más documentaciones traducidas.