Motivação

As tabelas estão presentes em grande parte das aplicações, independentemente de plataforma, e são usadas para apresentar conjuntos de dados para o usuário de forma organizada e compreensível.

Neste artigo vamos aprender a trabalhar com tabelas em páginas HTML utilizando o framework Materialize, que dispõe de recursos para estilizar visualmente esse tipo de componente.

Tabela básica no Materialize CSS

Quando referenciado na página, o Materialize já aplica estilos em alguns componentes sem que seja necessário adicionar classes específicas. As tabelas são um exemplo disso, e já têm sua aparência customizada pelo framework por padrão.

Na Listagem 1 temos um exemplo básico de uso de tabela em uma página na qual foi incluída a referência ao arquivo de CSS do Materialize.


  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css">
  </head>
  <body>
      <div class="container">
         <table>
              <thead>
                  <tr>
                      <th>Código</th>
                      <th>Descrição</th>
                      <th>Categoria</th>
                  </tr>
              </thead>
              <tbody>
                  <tr>
                      <td>001</td>
                      <td>Notebook i7 8GB Branco</td>
                      <td>Informática</td>
                  </tr>
                  <tr>
                      <td>002</td>
                      <td>Caneta Esferográfica Azul</td>
                      <td>Papelaria</td>
                  </tr>
              </tbody>
          </table>       
      </div>
  </body>
  </html>
  
Listagem 1. Incluindo uma tabela básica na página
Run

Nessa listagem, basicamente incluímos o arquivo de CSS do Materialize a partir da CDN (Content Delivery Network) e usamos a classe container na div que se encontra no corpo do documento. Essa classe, no entanto, apenas limita a largura dessa div, para que o conteúdo não fique “colado” nas margens da página. A partir daí, apenas adicionamos uma tabela sem nenhuma customização.

O resultado, quando abrimos o documento no browser, é o que vemos na Figura 1.

Elemento circular no website
Figura 1. Tabela básica estilizada pelo Materialize

Estilos adicionais para tabelas

Além da formatação padrão, o framework oferece algumas classes para aplicar efeitos às tabelas. Por exemplo, as classes bordered, striped e centered fazem com que as linhas da tabela ganhem bordas, cores alternadas e tenham seu conteúdo centralizado, respectivamente.

Para utilizá-las, basta adicioná-las ao atributo class da tabela, conforme o código abaixo:


  <table class="bordered striped centered">
  ...
  </table>
  

Run

O resultado deve ser semelhante ao da Figura 2.

Tabela com bordas, linhas coloridas e texto centralizado
Figura 2. Tabela com bordas, linhas coloridas e texto centralizado

Além dessas há, ainda, as classes highlight e responsive-table, que fazem com que as linhas sejam destacadas ao passar o mouse sobre elas e tornam a tabela responsiva. O código a seguir utiliza essas opções:


  <table class="bordered striped centered highlight responsive-table">
  ...
  </table>
  

Run

Quando ativo, o recurso de responsividade modifica o layout da tabela para visualização em telas menores. Nesses casos, as linhas são apresentadas na forma de colunas e é adicionada uma barra de rolagem horizontal, como podemos ver na Figura 3.

Tabela responsiva
Figura 3. Tabela responsiva

Com o Materialize, utilizando poucas classes CSS conseguimos estilizar as tabelas de nossas aplicações com aparência elegante e funcionalidades que possibilitam uma melhor usabilidade. Além disso, o framework conta com diversos outros recursos aplicáveis a outros componentes comuns, como botões, tipografia, entre outros.