Estou enfrentando um problema ao definir a rolagem de estouro de largura de altura do corpo.
<style>
tbody{
height:50px;display:block;overflow:scroll
}
</style>
<h3>Table B</h3>
<table style="border: 1px solid red;width:300px;display:block">
<thead>
<tr>
<td>Name</td>
<td>phone</td>
</tr>
</thead>
<tbody style='height:50px;display:block;overflow:scroll'>
<tr>
<td>AAAA</td>
<td>323232</td>
</tr>
<tr>
<td>BBBBB</td>
<td>323232</td>
</tr>
<tr>
<td>CCCCC</td>
<td>3435656</td>
</tr>
</tbody>
</table>
Eu quero a tabela B como a Tabela A com rolagem de estouro.
Qualquer ajuda será apreciada.
Muito obrigado, M.
Respostas:
se você quiser
tbody
mostrar um pergaminho, transforme-o em umblock
.Para manter o comportamento de
table
, transforme-setr
emtable
.para pulverizar uniformemente as células, use
table-layout:fixed;
DEMO
CSS para o seu teste de HTML:
Se
tbody
não mostra um pergaminho, porque o conteúdo é inferiorheight
oumax-height
, defina a rolagem a qualquer momento com:overflow-y:scroll;
. DEMO 2fonte
overflow:auto
poroverflow-y: scroll
para evitar que os cabeçalhos permaneçam 1 em esquerda, mesmo quando o corpo não precisa da barra de rolagem.É uma maneira simples de usar a barra de rolagem para o corpo da tabela
fonte
width: 100px
atd, th
dentrotbody, thead
Outra abordagem é envolver sua tabela em um elemento rolável e definir as células de cabeçalho para ficar no topo.
A vantagem dessa abordagem é que você não precisa alterar a exibição no corpo e pode deixar que o navegador calcule a largura da coluna enquanto mantém a largura da célula do cabeçalho alinhada com a largura da coluna da célula de dados.
fonte
height: 100%
tfoot
com uma posição inferior adesiva de 0 e funciona perfeitamente . Ótima resposta!Por padrão,
overflow
não se aplica aos elementos do grupo de tabelas, a menos que você forneçadisplay:block
a<tbody>
também, você deve fornecer aposition:relative
edisplay: block
a<thead>
. Verifique o DEMO .fonte
A mais simples de todas as soluções:
Adicione o código abaixo em CSS:
fonte
tbody tr
elementos da página. Mudar para:.tableClassName thead, .tableClassName tbody tr {...}
Altere o código da segunda tabela como abaixo.
JSFIDDLE DEMO
fonte
No meu caso, eu queria ter altura de mesa responsiva em vez de altura fixa em pixels como as outras respostas estão aparecendo. Para fazer isso, usei a propriedade de porcentagem de altura visível e estouro em div contendo a tabela:
Desta forma, a tabela se expandirá junto com a janela sendo redimensionada.
fonte
Com base nesta resposta , aqui está uma solução mínima se você já estiver usando o Bootstrap:
Testado no Bootstrap v3
fonte
Acho que o que você está tentando fazer é manter o cabeçalho fixo e rolar o conteúdo do corpo. Você pode rolar o conteúdo em 2 direções:
tbody
tag, pois atribuirdisplay:block
oudisplay:inline-block
quebrar o layout da tabela.Aqui está uma solução usando
divs
: JSFiddleHTML:
CSS:
Explicação:
Você tem um
sliding wrapper
que conterá todos os dados.Observe o seguinte:
Há uma diferença de 17 px porque precisamos levar em consideração a largura da barra de rolagem.
fonte
O Webkit parece ser usado internamente
display: table-row-group
para atbody
tag. Atualmente, há um bug com a configuração de altura para ele: https://github.com/w3c/csswg-drafts/issues/476Esperemos que seja resolvido em breve.
fonte
HTML:
CSS:
isso também funcionará:
fonte
Fazer rolagem de tabelas é sempre um desafio. Esta é uma solução em que a tabela é rolada horizontalmente e verticalmente com altura fixa no corpo, fazendo com que o cabeçalho e o corpo "grudem" (sem visor: fixos). Eu adicionei uma mesa "grande" apenas para mostrar. Tirei inspiração de G-Cyrillus para fazer o display tbody: block; Mas quando se trata da largura de uma célula (tanto no cabeçalho quanto no corpo), depende do conteúdo interno. Portanto, adicionei conteúdo com largura específica dentro de cada célula, tanto no cabeçalho quanto na primeira linha mínima em tbody (as outras linhas se adaptam de acordo)
fonte