Tabela Bootstrap: entenda de forma descomplicada!

Neste artigo, vamos explicar como criar e estilizar uma tabela Bootstrap. Antes de prosseguir, recomenda-se que tenha conhecimentos básicos sobre o Bootstrap e também sobre como funciona uma tabela em HTML.

O Bootstrap é um dos mais conhecidos Frameworks de código aberto para CSS na atualidade, sento adotado por grande parte dos desenvolvedores web. Através dele, é possível adotar diversas classes com CSS já predefinido, facilitando muito o desenvolvimento de páginas HTML. Atualmente, se encontra na versão 4.

Um recurso muito utilizado na web é o elemento de tabelas. Portanto, os desenvolvedores do Bootstrap pensaram numa forma de incluir as tabelas em seus estilos predefinidos.

Neste artigo, abordamos os seguintes tópicos:

Incluindo a classe de tabela Bootstrap

Como explicado anteriormente, o Bootstrap funciona através de estilos predefinidos. Dessa forma, basta adicionar classes aos elementos para obter o resultado desejado. Ao criar uma tabela no HTML de forma comum, podemos incluir na tag <table> a classe .table, nativa do Bootstrap. Dessa forma, a tabela já receberá algumas formatações visuais.

No exemplo abaixo, vamos aplicar a classe .table na nossa estrutura básica de tabela Bootstrap:

<table class="table">
  <thead>
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Alan</td>
      <td>Maia</td>
      <td>alan_maia</td>
    </tr>
  </tbody>
</table>

Como resultado, vamos obter uma tabela Bootstrap:

Tabela BootsTrap

Com isso, observamos uma tabela diferente da que seria gerada apenas com o uso do HTML puro, já com uma formatação básica. Porém, além da classe .table, é possível ainda incluir diversas outras classes que compõem a tabela Bootstrap.

Estilos básicos para a tabela Bootstrap

Tema escuro

Para atribuir um tema de tons escuros à tabela Bootstrap, basta acrescentar a classe .table-dark, como no seguinte código:

<table class="table table-dark">
  <thead>
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Alan</td>
      <td>Maia</td>
      <td>alan_maia</td>
    </tr>
  </tbody>
</table>

Neste exemplo, o resultado será:

Tabela Bootstrap com tema escuro

Alternando a cor das linhas

Também conhecido como linhas zebradas, ao aplicar a classe .table-striped, obtemos um efeito de cores alternadas entre as linha do corpo da tabela. Veja o exemplo:

<table class="table table-striped">
  <thead>
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Alan</td>
      <td>Maia</td>
      <td>alan_maia</td>
    </tr>
  </tbody>
</table>

Dessa forma, obtemos o resultado conforme a imagem abaixo:

Tabela com linhas Zebradas

Mesclando o tema escuro com as linhas alternadas

Também é possível incluir ambas as classes na mesma tabela. Dessa forma, vamos obter uma tabela com tema escuro e com linhas alternadas, conforme exemplificado no código abaixo:

<table class="table table-striped table-dark">
  <thead>
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Alan</td>
      <td>Maia</td>
      <td>alan_maia</td>
    </tr>
  </tbody>
</table>

Dessa forma, unindo os dois efeitos na mesma tabela, o resultado do exemplo será:

Tabela com Tema escuro e linhas Zebradas

Tabela com todas as bordas

No padrão da classe .table, já é possível observar que ele traz uma borda entre as linhas como padrão. Porém, é possível também adicionar bordas não só às linhas, mas também entre as colunas através da classe .table-bordered. Dessa forma, vamos utilizar essa classe na tabela Bootstrap do código em exemplo:

<table class="table table-bordered">
  <thead>
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Alan</td>
      <td>Maia</td>
      <td>alan_maia</td>
    </tr>
  </tbody>
</table>

O resultado será conforme a imagem abaixo:

Table com borda

Podemos ainda, utilizar essa classe em conjunto com outras classes. Podemos então incluir um tema escuro, com linhas alternadas e com bordas para a tabela Bootstrap. Que tal tentar?

Tabela sem borda

Anteriormente vimos como aplicar bordas entre todas as células da tabela. Porém, caso necessite deixar a tabela sem nenhuma borda, inclusive sem a borda entre linhas (padrão da classe .table), podemos utilizar a classe .table-borderless. Dessa forma, teremos como resultado uma tabela sem nenhuma linha, porém mantendo todas as demais formatações. Vejamos o exemplo abaixo:

<table class="table table-borderless">
  <thead>
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Alan</td>
      <td>Maia</td>
      <td>alan_maia</td>
    </tr>
  </tbody>
</table>

Assim sendo, obtemos uma tabela conforme a imagem abaixo:

Table sem borda

Tal como na classe que acrescenta bordas à tabela, também podemos incluir outras classes em conjunto a essa.

Linhas com efeito hover

É possível incluir com o Bootstrap a classe .table-hover. Dessa forma, ao passar o mouse por cima de uma linha da tabela, a mesma realizará um efeito visual. Este recurso também pode ser utilizado em conjunto com outras classes nativas. Experimente aplicar o código abaixo e veja o resultado:

<table class="table table-hover">
  <thead>
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Alan</td>
      <td>Maia</td>
      <td>alan_maia</td>
    </tr>
  </tbody>
</table>

Tabela Bootstrap compacta

Através da classe .table-sm, podemos reduzir o tamanho de uma tabela. Essa classe possui a metade do valor de padding entre linhas que o padrão adotado pelo Bootstrap, o que faz com que ela seja capaz de compactar a tabela. Vejamos então o exemplo a seguir:

<table class="table table-sm">
  <thead>
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Alan</td>
      <td>Maia</td>
      <td>alan_maia</td>
    </tr>
  </tbody>
</table>

Perceba como o resultado será uma tabela com menor espaçamento entre as linhas:

Tabela Bootstrap Pequena

Estilos básicos para o cabeçalho da tabela Bootstrap

Além dos estilos básicos para aplicar na tabela, existe ainda a opção de aplicar um estilo exclusivamente ao cabeçalho da tabela Bootstrap. Para isso, basta acrescentarmos ao <thead> as classes .thead-light ou .thead-dark, deixando assim mais claro ou mais escuro. Veja então no exemplo abaixo duas tabelas:

<table class="table">
  <thead class="thead-light">
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
  </tbody>
</table>
<br>
<table class="table">
  <thead class="thead-dark">
    <tr>
      <th>Nº</th>
      <th>Nome</th>
      <th>Sobrenome</th>
      <th>Usuário</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>1</th>
      <td>Joao</td>
      <td>Mateus</td>
      <td>johny</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Jose</td>
      <td>Silva</td>
      <td>jsilva</td>
    </tr>
  </tbody>
</table>

O resultado final para as tabelas do código acima será o seguinte:

Modificando o <thead> da tabela bootstrap

Classes contextuais para linhas ou células

Existem classes preestabelecidas no Bootstrap que podem ser inseridas dentro das tags de linhas ou células. Elas servem para “colorir” as linhas ou células. Basta acrescentar as classes abaixo em linhas ou em células:

  • .table-active
  • .table-primary
  • .table-secondary
  • .table-success
  • .table-info
  • .table-warning
  • .table-dark
  • .table-light

Portanto, vejamos o exemplo abaixo utilizando essas classes na tabela Bootstrap:

<table class="table">
  <thead>
    <tr>
      <th>Classe</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr class='table-active'>
      <td>.table-active</td>
      <td>exemplo</td>
    </tr>
    <tr class='table-primary'>
      <td>.table-primary</td>
      <td>exemplo</td>
    </tr>
    <tr class='table-secondary'>
      <td>.table-secondary</td>
      <td>exemplo</td>
    </tr>
    <tr class='table-success'>
      <td>.table-success</td>
      <td>exemplo</td>
    </tr>
    <tr class='table-info'>
      <td>.table-info</td>
      <td>exemplo</td>
    </tr>
    <tr class='table-danger'>
      <td>.table-danger</td>
      <td>exemplo</td>
    </tr>
    <tr class='table-warning'>
      <td>.table-warning</td>
      <td>exemplo</td>
    </tr>
    <tr class='table-dark'>
      <td>.table-dark</td>
      <td>exemplo</td>
    </tr>
    <tr class='table-light'>
      <td>.table-light</td>
      <td>exemplo</td>
    </tr>
  </tbody>
</table>

Dessa forma, obtemos o seguinte resultado:

Classes Contextuais da Tabela Bootstrap

Apesar do resultado ser bem interessante, é importante saber que esses estilos não se aplicam para o tema escuro. Ainda assim, você pode estar utilizando as classes de cores de fundo (background) do bootstrap para aplicar às linhas ou células de uma tabela com tema escuro.

Tabelas responsivas

Agora que já sabemos tudo que precisamos para estilizar o visual das nossas tabelas, vamos ver como deixá-las adaptadas a todas as telas!

As tabelas responsivas permitem a realização de rolagem horizontal, de forma rápida e intuitiva. Para tornar uma tabela Boostrap responsiva para todos os tamanhos de tela (viewport), independente do breakpoint, utilizamos a classe .table-responsive em um elemento pai. Dessa forma, basta acrescentar uma div pai à tabela com essa classe, conforme no código do exemplo abaixo:

<div class="table-responsive">
    <table class="table">
      <thead>
        <tr>
          <th>numero</th>
          <th>exemplo</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>01</td>
          <td>exemplo</td>
        </tr>
        <tr>
          <td>02</td>
          <td>exemplo</td>
        </tr>
      </tbody>
    </table>
</div>

Observe então que a classe é aplicada à <div> que irá servir como container, elemento pai, da tag <table>.

Porém, caso queira acrescentar o responsivo para breaking points específicos, basta acrescentar à <div> as classes:

  • .table-responsive-sm
  • .table-responsive-md
  • .table-responsive-lg
  • .table-responsive-xl

Para melhor entendimento dos breakpoints apresentados anteriormente, recomendamos a leitura da documentação do Bootstrap sobre os breakpoints responsivos.

Com este tutorial você possui um guia completo para utilizar as tabelas Bootstrap em qualquer página da web! Para isso, você pode adquirir o Bootstrap gratuitamente no site oficial e começar a praticar agora mesmo!

Este artigo foi útil?

Obrigado pela resposta!
Rafael Marques

Rafael Marques

Especialista em Desenvolvimento Web e Marketing. É apaixonado por tecnologia, empreendedorismo, audiovisual e animais. Em sua carreira, dedica-se ao empreendedorismo, além de atuar como Desenvolvedor Fullstack e redator técnico. Gosta de usar seu tempo livre para assistir a filmes, jogar, escrever, e passar um bom tempo brincando e mimando seus animais de estimação.

Contato: rafael.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!