Hoje em dia no Bootstrap o conceito do uso de tabelas foi substituído pelo grid. No grid do bootstrap a linha do browser é dividida em 12 partes e cada elemento colocado no grid vai ocupar toda a linha. Se eu colocar 2 elementos cada um deles vai ocupar 50% da linha. Se forem 3 elementos cada um ocupará 33,33% da linha e assim por diante. O uso que eu faço mais comum do grid é numa tela de login onde sempre temos um campo texto seguido por uma caixa de texto, por exemplo: Nome : ______________. O grid consegue deixar os campos perfeitamente alinhados na vertical.
Lembre-se de outro detalhe...Bootstrap é mobile first, ou seja, prioriza a exibição para dispositivos móveis que são a maioria dos dispositivos que hoje navegam na Internet.
No começo da www se quisessemos alinhar elementos como se fossem uma 'planilha eletrônica' só havia um recurso : Tabelas. E como vocês sabem, desgraça pouca é bobeira, o pessoal inventava de colocar penduricalhos nelas do tipo total, quebra por tipo de produto, esconder os valores iguais em linhas consecutivas ( só exibia a primeira ) etc. Portanto no inferno dos programadores asp clássico, com certeza, esse elemento estará lá. E sua aparência era horrível...pra ficar aceitável só com muita formatação. Veja abaixo um exemplo básico de uma tabela html.
Coluna 1 Cabeçalho | Coluna 2 Cabeçalho | Coluna 3 Cabeçalho |
---|---|---|
Coluna 1 Linha 1 | Coluna 2 Linha 1 | Coluna 3 Linha 1 |
Coluna 1 Linha 2 | Coluna 2 Linha 2 | Coluna 3 Linha 2 |
Coluna 1 Linha 3 | Coluna 2 Linha 3 | Coluna 3 Linha 3 |
O único estilo que coloquei na tabela acima é o border="1" para exibir as bordas e align="center" para centralizar a tabela na tela. É lógico que dá para melhorar muito o visual do elemento, mas nosso objetivo é fazer o mais rápido e o mais bonito possível, sem perder tempo, usando o BootStrap.
A classe .table define um estilo básico (claro,padding e divisores horizontais) para a tabela:
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
Comparando com a tabela do HTML a gente só pode dizer...uau. Para ficar bonito coloquei nas linhas a classe class="table-info"
para que a cor de fundo da linha ficasse num azul mais escuro que o fundo da página porque, por default, linhas de grade
do Boostrap são cinza claro e isso faria com que as divisões das colunas ficariam praticamente invisíveis.
Outra coisa que dá pra notar é que foi feita uma distribuição bem alinhadas dos itens...isso porque eu usei o bootstrap
<link rel="stylesheet" href="../BootstrapEngine/css/bootstrap.min.css">
e a classe table.
Quer dar mais uma babada....reduza a largura do browser e veja o que acontece na tabela HTML e na do Bootstrap. A tabela bootstrap é responsiva por default. Babou ?
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
Tudo que fiz foi aplicar uma classe no header da tabela : <thead class=" thead-dark">. Você pode usar também o estilo thead-light para o cabeçalho fazendo ele ficar claro o que fica bem em um fundo com uma cor mais destacada.
A classe .table-striped class define o estilo tabela zebrada :
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
Coloquei no estilo da table class="table table-striped" e no header a classe class="thead-light". Sendo assim as linhas da tabela apareceram zebradas ( um tom de azul mais escuro numa linha na outra a cor de fundo) e o cabeçalho aparaceu com o fundo branco.
A classe .table-bordered adiciona bordas em todos os lados da tabela e das células :
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
Não fui muito feliz porque a cor de fundo da página é praticamente a cor da borda da tabela. Faça o teste com uma cor de fundo que se destaque em relação a borda cinza-clara da página. Você também pode aplicar uma classe que personalize a cor da linha tipo <tr class="table-active"">. No final desta página mostro esses estilos de linha.
A classe .table-hover habilita o eveito hover (fundo cinza quando o mouse esta sobre a linha) :
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
Passe o mouse sobre a tabela e verá que a linha sob o mouse é destacada.
A classe .table-dark adiciona um fundo preto a tabela:
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
Combine as classes .table-dark e .table-striped para criar um fundo escuro e zebrado a tabela :
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
A classe .table-hover adiciona o efeito hover effect (cor de fundo cinza) nas linhas da tabela:
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
A classe .table-borderless remove as bordas da tabela:
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
As classes contextuais podem ser usadas para dar a cor de fundo na tabela, nas linhas ou mesmo nas células. As classes que podem ser usadas são : .table-primary, .table-success, .table-info, .table-warning, .table-danger, .table-active, .table-secondary, .table-light and .table-dark:
Primeiro Nome | Sobrenome | |
---|---|---|
Default | Defaultson | def@algumemail.com |
Primary | Joe | joe@exemplo.com |
Success | Ninguém | João@exemplo.com |
Danger | Mole | maria@exemplo.com |
Info | Agosto | Júlio@exemplo.com |
Warning | Refs | bo@exemplo.com |
Active | Activeson | act@exemplo.com |
Secondary | Secondson | sec@exemplo.com |
Light | Angie | angie@exemplo.com |
Dark | Bo | bo@exemplo.com |
Use a classe .thead-dark para adicionar um funco escuro aos cabeçalhos das tabelas e a classe .thead-light para adicionar um fundo cinza aos cabeçalhos das tabelas:
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
A classe .table-sm faz a tabela menor por diminuir o padding das células pela metade :
Primeiro Nome | Sobrenome | |
---|---|---|
João | Ninguém | João@exemplo.com |
Maria | Mole | maria@exemplo.com |
Júlio | Agosto | Júlio@exemplo.com |
A classe .table-responsive cria uma tabela responsiva que rolará horizontalmente em telas com menos de 992px de largura (se necessário). Quando visualizadas em telas maiores que 992px não haverá diferença :
# | Primeiro Nome | Sobrenome | Idade | Cidade | País | Sexo | exemplo | exemplo | exemplo | exemplo |
---|---|---|---|---|---|---|---|---|---|---|
1 | Ana | Pitanga | 35 | Ladeira abaixo | Brasil | Mulher | Yes | Yes | Yes | Yes |
Reduza a largura do browser a menos de 992 pixels e verá que a tabela será mantida no seu tamanho original mas será truncada à direita e logo abaixo dela será exibida uma barra de scroll horizontal que permite exibir a parte faltante da tabela.