Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Xuan

Como fixar thead, tfoot e algumas colunas da tabela?

Recommended Posts

Oi pessoal, eu andei buscando uma forma de fixar head, foot e colunas de tabela em css.

 

Recentemente eu fiz um plugin do jQuery para realizar esse efeito.

 

No plugin, eu atribuo "position: relative" para as células que serão fixas, e uso evento do scroll para atribuir nova posicao (top ou left) da célula, porem, encontrei problema de que a borda-bottom do head, não consegue ficar fixo, quando descer a rolagem, a borda sobe junto com o conteudo, eu não faço ideia de como posso arrumar isso.

 

Gostaria de saber, como vocês fariam esse efeito de fixar cabeçalhos, rodapé ou colunas em uma tabela, usando uma único table?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por diogorocha18
      Boa noite,
       
      Estou a fazer um bot para o discord para um jogo e estou aqui com algumas dificuldades porque a experiencia não é a melhor..
       
      É o seguinte, eu preciso que me mande na variavel "color" 3 coisas diferentes, ou melhor, me escreva na cor dependendo do innerHTML tiver "small", "medium" ou "large" escreva na variavel color "verde", "castanho" ou "vermelho".
       
      Como posso fazer para essa variavel procurar uma das tres variaveis?
       
      for (var i = 1, row; row = table.rows[i]; i++) { var color = row.cells[0].innerHTML.includes("small") var player = row.cells[0].innerText; var status = row.cells[1].innerText; if (status){ msg += " " + color + " ---> " + player + " ----> " + status + " \n" } }  
      Obrigado pela ajuda.
       
      Abraço
       
       
    • Por lezão
      Ola pessoal!
      Td bem com vcs?
       
      Estou tentando fazer esse item ficar em css e naun estou conseguindo alguem pode me ajudar?
      <table width="75%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="15%" height="35"><b>Moda da Casa</b></td> <td width="55%" style="border-bottom: dotted; border-width: 1px 3px 3px 1px; border-color: black black #000000 #000000"></td> <td width="7%"><b>R$ 25,00</b></td> <td width="3%" rowspan="2" align="left"><img src="https://clipartart.com/images/delete-button-clipart.jpg" width="75px" heigth="50px"/></td> </tr> <tr> <td colspan="3" height="35"> <div class="label-float"> <input type="text" value="Molho de tomate, mussarela, calabresa ralada, catupiry, alho tostado, cebola, azeitonas e oregano." size="100%" placeholder="" required=""> </div> </td> </tr> </table> obrigado!
       
       
       
    • Por ment0r
      Boa tarde a todos.
       
      Eu estou aproveitando a quarentena pra estudar e em aprofundar mais em JQuery. Comecei então um protótipo de PDV pra por em prática o aprendizado.
      Anexei uma imagem da tela. Basicamente é isso: o usuário digita um código e ao sair (blur), preenche o nome do produto e valor; quando o usuário clica em quantidade (keyup) faz o cálculo de valor unitário X qtde e exibe no campo total item. Quando o campo total item perde o foco (blur), os dados vão para o canto superior esquendo (conforme imagem) e ficam como linha daquela tabela.
       
      Só que quando eu faço uma nova consulta, ele apaga o registro anterior. O que eu queria é que quando eu pesquisasse um novo produto e fizesse o cálculo, armazenasse o segundo produto na linha de baixo e não apagasse o anterior.
      Esse trecho busca o valor e exibe nos campos - tudo ok aqui.
      // Pega o valor digitado no campo código // Passa como parametro para função buscaProduto codigo.blur(function(){ if (codigo.val() != '') { buscaProduto(codigo.val()); } else { alert('Por favor, digite algum valor no campo código'); codigo.focus(); } }); // Função responsável por buscar os dados do produto function buscaProduto(codigo){ $.ajax({ url : "busca_produto.php", type : 'post', cache: false, // não mantém os dados em cache dataType: 'json', // não é necessário passar quando é html data : { cod : codigo }, success: function(msg){ produto.val(msg.NOME); valor.val(msg.PRECO); quantidade.focus(); } }) } Esse trecho adiciona a linha dos dados na tabela do canto superior esquerdo.
      // Executa a função preencheDados quando o input #total_item perde o foco total_item.blur(function(){ preencheDados(codigo.val(), produto.val(), quantidade.val(), valor.val(), total_item.val()) }) // Preeche os dados calculados na tela function preencheDados(codigow, produtow, quantidadew, valorw, total_itemw){ th = '<th>1</th>'; th += '<th>'+codigow+'</th>'; th += '<th>'+produtow+'</th>'; th += '<th>'+quantidadew+'</th>'; th += '<th>'+valorw+'</th>'; th += '<th>'+total_itemw+'</th>'; destino.html(th); descricao.val(produtow); valor_down.val(valorw); quantidade_down.val(quantidadew); total_item_down.val(total_itemw); sub_total.val('Calcular...'); codigo.val('').focus(); produto.val(''); quantidade.val(''); valor.val(''); total_item.val(''); } Se alguém puder me dar uma dica de como adicionar essa segunda linha (th) eu agradeço muito.
       
      Um abraço a todos.

    • Por Alberto Nascimento
      Tenho um formulário de Upload e preciso salvar o "valor" gerado e exibido através do "echo" :
       
      echo "<img src=\"" . $destino . "\" />";  
      Como faço para salvar no campo "novonome" da tabela?
    • Por lucas70770
      Olá, eu tenho um sistema de pedidos onde em sua tabela a linha impar é os dados do produto e a impar é a grade de produtos, segue o código:
      <table class="tabela-tab-produto"> <thead> <tr> <th width="43"></th> <th>Código</th> <th>Descrição</th> <th>Qtde.</th> <th>Preço Tab.</th> <th>Desc.</th> <th>Preço Líq.</th> <th>Subtotal</th> <th></th> </tr> </thead> <tbody> <tr id="5{1+2,2{4+1"> <td></td> <td>LS</td> <td>Cortinas Listradas</td> <td class="text-right padding-right-15">3 <small>Un</small></td> <td class="text-right"><small>R$</small> 119.9</td> <td class="text-center"></td> <td class="text-right"><small>R$</small> 150</td> <td class="text-right"><small>R$</small> 450</td> <td class="text-right"> <a class="button tiny btn-cinza btn_editar" id="1"><span class="icon icon-pencil"></span></a> <a class="button tiny btn-cinza btn_excluir margin-right-15" data-open="container_excluir" id="86" aria-controls="container_excluir" aria-haspopup="true" tabindex="0"><span class="icon icon-bin"></span></a> </td> </tr> <tr> <td colspan="9"> <div class="medium-12 columns"> <table class="tab-produto"> <thead> <tr> <th></th><th>380x230</th><th>580x230</th> </tr> </thead> <tbody> <tr><td>Azul Claro</td><td>1</td><td>-</td></tr><tr><td>Azul</td><td>-</td><td>2</td></tr> </tbody> </table> </div> </td> </tr><tr id="1{1+1"> <td></td> <td>VLI</td> <td>Cortinas Voil Liso</td> <td class="text-right padding-right-15">1 <small>Un</small></td> <td class="text-right"><small>R$</small> 79.9</td> <td class="text-center"></td> <td class="text-right"><small>R$</small> 79.9</td> <td class="text-right"><small>R$</small> 79.9</td> <td class="text-right"> <a class="button tiny btn-cinza btn_editar" id="3"><span class="icon icon-pencil"></span></a> <a class="button tiny btn-cinza btn_excluir margin-right-15" data-open="container_excluir" id="94" aria-controls="container_excluir" aria-haspopup="true" tabindex="0"><span class="icon icon-bin"></span></a> </td> </tr> <tr> <td colspan="9"> <div class="medium-12 columns"> <table class="tab-produto"> <thead> <tr> <th></th><th>280x230</th> </tr> </thead> <tbody> <tr><td>Azul</td><td>1</td></tr> </tbody> </table> </div> </td> </tr> </tbody> </table> Quero saber como posso apresentar essa tabela com o jspdf e jspdf-autotable(se for necessário). Nos meus testes ele esta tirando a tabela que esta dentro da tabela principal.
      Eu achei um artigo sobre isso(https://stackoverflow.com/questions/39386969/nested-tables-in-a-pdf-using-jspdf-and-jspdf-autotable) mas não consegui aplicar no meu caso. Obg   
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.