如何使html表垂直滚动

Nik*_*l D 51 html css jquery

见jsbin

我必须使我的html表垂直滚动.
我在tbody标签上使用了以下代码,但它对我不起作用

 <tbody style="height: 100px; overflow: auto">
Run Code Online (Sandbox Code Playgroud)

sus*_*hil 86

你为什么不把你的桌子放在一个div?

<div style="height:100px;overflow:auto;">

 ... Your code goes here ...

</div>
Run Code Online (Sandbox Code Playgroud)

  • div没有表语义,并且不解决 - 除了多个div - 表头后面的滚动表体问题. (36认同)

Vir*_*alk 15

只需将display:block添加到thead> tr和tbody即可.检查以下示例

http://www.imaputz.com/cssStuff/bigFourVersion.html

  • 如果任何列没有指定宽度,则此技术不起作用。:-( (3认同)
  • 嗨,我很愚蠢。我如何使用这个例子?我只看到那个网站上的工作台:( (2认同)

nai*_*ikh 10

尝试这个......它正在工作......这里是JSBIN

table tbody { height:300px; overflow-y:scroll; display:block; }
table thead { display:block; }
Run Code Online (Sandbox Code Playgroud)

  • 那行不通。在表格单元格周围添加边框,您就会明白原因。http://jsbin.com/iveroj/114/edit (3认同)

odi*_*apc 5

最好的方法是严格将表分为两个不同的表-标头和正文:

<div class="header">
  <table><tr><!-- th here --></tr></table>
</div>

<div class="body">
  <table><tr><!-- td here --></tr></table>
</div>

.body {
  height: 100px;
  overflow: auto
}
Run Code Online (Sandbox Code Playgroud)

如果表的宽度较大(大于屏幕宽度),则必须同步添加水平滚动标题和正文的滚动事件。

您永远不要触摸带有CSS属性displayoverflow的表标签(table,tbody,thead,tfoot,tr)。与DIV包装器打交道更为可取。

  • 如果未明确定义每个宽度,则列将永远无法正确对齐。这似乎不是一个好方法。 (11认同)
  • 像这样将表头与其内容分开似乎是一种不好的做法。这就是“ tbody”和“ thead”的用途。 (2认同)