Tabelas
Documentação e exemplos para inclusão de diferentes tipos de tabelas (de acordo com sua necessidade de plugins JavaScript), no Bootstrap.
Exemplos
Devido ao abrangente uso de tabelas em widgets de terceiros, como calendários e selecionadores da datas, nós desenvolvemos nossas tabelas de forma que sejam alternativas. Basta adicionar a classe .table
em qualquer <table>
, então, customize-a mais usando nossos estilos de costumização ou as diversas classes modificadoras.
Usando a marcação mais básica para tabelas, assim é como tabelas usando .table
irão parecer, no Bootstrap. Todos os estilos de tabelas são herdados no Bootstrap 4, significando que qualquer tabela aninhada vai se comportar do mesmo modo que seus pais.
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
Você também pode inverter as cores (texto claro em background escuro), usando a class .table-dark
.
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
<table class="table table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
Opções de cabeçalhos para tabelas
Similar as tabelas comuns e tabelas escuras, use as classes modificadoras .thead-light
ou thead-dark
para fazer o <thead>
ser mais claro ou escuro.
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
<table class="table">
<thead class="thead-dark">
<tr>
<th scope="col">#</th>
<th scope="col">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
Linhas zebradas
Use .table-striped
para adicionar listras zebradas para qualquer <tbody>
.
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
<table class="table table-striped">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
<table class="table table-striped table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
Tabela com bordas
Use .table-bordered
para colocar bordas em todos os lados da tabela e suas células.
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
<table class="table table-bordered table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
Tabela sem bordas
Use .table-borderless
para ter uma tabela sem bordas.
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
<table class="table table-borderless">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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
também pode ser usada em tabelas mais escuras.
# | Primeiro | Último | Nickname |
---|---|---|---|
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">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
Linhas com efeito hover
Utilize .table-hover
para ativar um efeito hover, nas linhas dentro do <tbody>
.
# | Primeiro | Último | Nickname |
---|---|---|---|
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">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
# | Primeiro | Último | Nickname |
---|---|---|---|
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">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
Tabela pequena
Use .table-sm
para fazer com que as tabelas fiquem mais compactas, já que o padding das células serão cortados ao meio.
# | Primeiro | Último | Nickname |
---|---|---|---|
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">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
# | Primeiro | Último | Nickname |
---|---|---|---|
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">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
Classes contextuais
Use classes contextuais para colorir linhas ou células da tabela.
Classe | Cabeçalho | Cabeçalho |
---|---|---|
Ativo | Célula | Célula |
Padrão | Célula | Célula |
Primary | Célula | Célula |
Secondary | Célula | Célula |
Success | Célula | Célula |
Danger | Célula | Célula |
Warning | Célula | Célula |
Info | Célula | Célula |
Light | Célula | Célula |
Dark | Célula | Célula |
<!-- Em linhas -->
<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>
<!-- Em células (`td` ou `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>
Variantes de background não estão disponíveis em tabelas escuras, mas você pode usar utilitários de texto ou background para atingir estilos similares.
# | Cabeçalho | Cabeçalho |
---|---|---|
1 | Célula | Célula |
2 | Célula | Célula |
3 | Célula | Célula |
4 | Célula | Célula |
5 | Célula | Célula |
6 | Célula | Célula |
7 | Célula | Célula |
8 | Célula | Célula |
9 | Célula | Célula |
<!-- Em linhas -->
<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>
<!-- Em células (`td` ou `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>
Transmitindo significado a tecnologias assistivas
Usando cor para adicionar significado só fornece uma indicação visual, a qual não será transmitida para usuários de tecnologias assistivas (como leitores de telas). Se assegure que a informação denotada pela cor é tanto destacada do conteúdo (ex: o texto visível) ou está incluída em meios alternativos, como textos extras escondidos com a classe .sr-class
.
Crie tabelas responsivas envolvendo qualquer .table
com .table-responsive{-sm|-md|-lg|-xl}
, fazendo a tabela ter rolagem horizontal em cada breakpoint de max-width
, por volta de (não extamente) 576px, 768px, 992px e 1120px, respectivamente.
Perceba: já que browsers não suportam, atualmente, range context queries, nós contornamos as limitações dos prefixos min-
e max-
e viewports com larguras fracionais (pode ocorrer em algumas circunstâncias, em dispositivos de alta dpi), usando valores com precisão maior para estas comparações.
Legendas
Um <caption>
funciona como um cabeçalho para a tabela. Isso ajuda usários de screen readers achar uma tabela e descobrir sobre oquê é e decidir se eles querem lê-la.
# | Primeiro | Último | Nickname |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
<table class="table">
<caption>Lista de usuários</caption>
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Primeiro</th>
<th scope="col">Último</th>
<th scope="col">Nickname</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>
Tabelas responsivas
Tabelas responsivas permitem tabelas serem roladas horizontalmente, com facilidade. Faça com que qualquer tabela seja responsiva em todas viewports, simplesmente, envolvendo um .table
com .table-responsive
. Além disso, você pode escolher um breakpoint máximo para a tabela ser responsiva, usando a classe .table-responsive{-sm|-md|-lg|-xl}
.
Corte vertical
Tabelas responsivas usam overflow-y: hidden
, declaração a qual corta qualquer conteúdo que vai além da borda de cima ou de baixo, numa tabela. Em particular, isso pode acabar cortando menus dropdowns e outros widgets de terceiros.
Sempre responsiva
Use .table-responsive
para fazer que tabelas rolem horizontalmente, através de todos dispositivos.
# | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho |
---|---|---|---|---|---|---|---|---|---|
1 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
2 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
3 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
<div class="table-responsive">
<table class="table">
...
</table>
</div>
Breakpoint específico
Use .table-responsive{-sm|-md|-lg|-xl}
sempre que necessário, para criar tabelas responsivas em um breakpoint específico. Desse breakpoint pra cima, a tabela vai se comportar normalmente e não vai rolar horizontalmente.
These tables may appear broken until their responsive styles apply at specific viewport widths.
# | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho |
---|---|---|---|---|---|---|---|---|
1 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
2 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
3 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
<div class="table-responsive-sm">
<table class="table">
...
</table>
</div>
# | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho |
---|---|---|---|---|---|---|---|---|
1 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
2 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
3 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
<div class="table-responsive-md">
<table class="table">
...
</table>
</div>
# | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho |
---|---|---|---|---|---|---|---|---|
1 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
2 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
3 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
<div class="table-responsive-lg">
<table class="table">
...
</table>
</div>
# | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho | Cabeçalho |
---|---|---|---|---|---|---|---|---|
1 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
2 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
3 | Célula | Célula | Célula | Célula | Célula | Célula | Célula | Célula |
<div class="table-responsive-xl">
<table class="table">
...
</table>
</div>