Criar uma tabela com título fixo e barra de rolagem no restante é importante e vantajoso em diversas situações, especialmente quando lidamos com conjuntos extensos de dados.
Nesse post irei criar uma tabela com título fixo que permita que o cabeçalho da tabela permaneça visível à medida que o usuário rola para baixo a barra de rolagem do navegador, o que facilita a referência dos rótulos das colunas e a compreensão do conteúdo apresentado.
Dica: clique aqui para ver outros posts sobre HTML.
Iremos criar a seguinte tabela em HTML para servidor como exemplo,
Dados Pessoais
Nome | Idade | Cidade | Profissão |
---|---|---|---|
Maria | 30 | São Paulo | Engenheira |
João | 25 | Rio de Janeiro | Estudante |
Ana | 35 | Belo Horizonte | Médica |
Pedro | 28 | Recife | Advogado |
Tags importantes
Nos exemplos abaixo temos que destacar as tags responsáveis pela fixação da linha dos títulos da nossa tabela. Essa fixação é feita na folha de estilo (ou CSS).
- definimos a propriedade position como “sticky” e especificamos “0” como um valor da propriedade top para o elemento .
A propriedade position indica o tipo de posicionamento de um elemento.
Poderíamos usar também a display como “block” em <thead> e <tbody> para que possamos aplicar as propriedades de altura e overflow.
A propriedade display indica como um elemento deve ser exibido.
Abaixo estão as linhas HTML responsáveis por criar a tabela de exemplo acima:
<div class="cabecalhoFixado"> <table> <thead> <tr> <th>Nome</th> <th>Idade</th> <th>Cidade</th> <th>Profissão</th> </tr> </thead> <tbody> <tr> <td>Maria</td> <td>30</td> <td>São Paulo</td> <td>Engenheira</td> </tr> <tr> <td>João</td> <td>25</td> <td>Rio de Janeiro</td> <td>Estudante</td> </tr> <tr> <td>Ana</td> <td>35</td> <td>Belo Horizonte</td> <td>Médica</td> </tr> <tr> <td>Pedro</td> <td>28</td> <td>Recife</td> <td>Advogado</td> </tr> </tbody> </table> </div>
Coloque essas linhas entre as tags <body> e </body> da sua página.
Estilo CSS para nossa tabela de exemplo
Coloque o estilo CSS abaixo entre as tags <head> e </head> da sua página HTML
<style> .cabecalhoFixado { overflow-y: auto; height: 110px; } .cabecalhoFixado thead th { position: sticky; top: 0; } table { border-collapse: collapse; width: 100%; } th, td { padding: 8px 15px; border: 2px solid #529432; } th { background: #ABDD93; } </style>
Você pode alterar a altura da tabela modificando o valor height: 110px; para outro maior em seu CSS.
Veja como ficou: