7
respostas

Como fixar o THEAD de uma tabela

Galera boa tarde a duvida é no código abaixo:

<?php include ("cabecalho.php");?>
<?php include ("conexao.php");?>
<?php include ("funcoesBD.php");?>

<?php
  $produtos = listaProdutos($conexao);
?>

<div class="table-wrapper">
<table class="table table-hover">

  <thead>
      <tr>
          <th>Nome</th>
          <th>Preco</th>
          <th>Cor</th>
      </tr>
    </thead>

  <?php
    foreach($produtos as $produto) :
  ?>

  <tbody>
      <tr>
        <!--<td><?= $produto['id'] ?></td>-->
          <td><?= $produto['nome'] ?></td>
          <td><?= $produto['preco'] ?></td>
          <td><?= $produto['cor'] ?></td>

          <td>
            <a class="btn btn-primary" href="form-altera-produto.php?id=<?=$produto['id']?>">Alterar</a>
          </td>

          <td>
            <form action="deleta-produto.php" method="post">
              <input type="hidden" name="id" value="<?=$produto['id']?>">
              <button class="btn btn-danger confirmation-callback" onclick="return (window.confirm('Certeza que deseja remover?'));">Remover</button>
            </form>
          </td>

      </tr>
    </tbody>

  <?php
    endforeach
  ?>

</table>
</div>
<?php include ("rodape.php");?>

Como seria possivel fixar esse trecho:

<thead>
      <tr>
          <th>Nome</th>
          <th>Preco</th>
          <th>Cor</th>
      </tr>
    </thead>

para que dessa maneira apenas as informações subam ou desçam? Tentei várias formas porem desconfigura a tabela toda. Obrigado.

7 respostas

Oi Matheus, não sou especialista em front, mas de todo jeito fui dar uma buscada para ver se podia ajudar. Achei esse link aqui => https://jsfiddle.net/dPixie/byB9d/3/ Ele monta uma tabela com o header fixo, da uma olhada para ver se não te ajuda.

Não consegui entender o "fixar", poderia explicar melhor ?

Alberto já tinha visto essa solução porem como estou usando o bootstrap ele desconfigura toda a página.. Matheus seria isso que o Alberto mandou como exemplo manter o header fixo ao rolar as informações dentro de uma tabela.

Matheus nunca cheguei a fazer esse tipo de design, mas acredita que você consiga fixar o thead com:

display: fixed;

E para rolar o conteúdo do body tente fazer:

max-height: 500px;
overflow-y: auto;

Espero ter ajudado

Entendi, vou tentar mas caso não funcione vou tentar partir para paginação e defino um tamanho máximo de registros por página, o que evita a criação de barra de rolagem. Obrigado galera.

Em java utilizo o displaytag com ele fica fácil fazer paginação entre outras coisas, em php a galera gosta bastante de usar o jqgrid talvez ele possa lhe ser util.

Opa, vou pesquisar sobre o jqgrid, obrigado!