我知道这个问题,但没有一个答案适用于Safari,Chrome等.
接受的策略(如此处所示)是设置tbody高度和溢出属性,如下所示:
<table>
<thead>
<tr><th>This is the header and doesn't scroll</th></tr>
</thead>
<tbody style="height:100px; overflow:auto;">
<tr><td>content that scrolls</td></tr>
<tr><td>content that scrolls</td></tr>
<tr><td>content that scrolls</td></tr>
<tr><td>content that scrolls</td></tr>
<tr><td>content that scrolls</td></tr>
<tr><td>content that scrolls</td></tr>
<tr><td>content that scrolls</td></tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这在任何webkit浏览器中都不起作用.有一个关于它的错误报告似乎不是一个高优先级(据报道,05年6月).
所以我的问题是:是否有其他策略确实有效?我尝试过双表方法,但是不可能保证标题与内容对齐.我只需要等待Webkit修复它吗?
Mic*_*per 33
这是一个工作示例:
http://www.imaputz.com/cssStuff/bigFourVersion.html
你必须将display:block添加到thead> tr和tbody
小智 17
使用display:block样式仅在有1列时才有效.如果你有多个数据列 - 有多个字段 - 那么display:block似乎可以使所有数据列都可滚动但在第一列下(在Firefox中也是如此 - 这是我知道的唯一一个可以很好地滚动的浏览器).顺便说一句,在Firefox上 - 您可以使用overflow-x:hidden样式来抑制水平滚动.
我意识到,如果你没有为th&td元素指定宽度,我提到的问题只会出现 - 如果你可以修复列宽,那么它可以工作.对我来说问题是我无法修复列宽.
小智 12
尝试这个页面的第一个方法,带有单个表的纯CSS(表格周围有2个div,而thead绝对定位):http://www.cssplay.co.uk/menu/tablescroll.html 似乎可以工作FF4/IE9/IE8除IE7/FF3.6外.
我有同样的问题并编写了一个jQuery脚本来为我做这个...使用两个表元素并相应地格式化css.希望这有助于其他有同样问题的人......
我看到了Sean Haddy的出色解决方案,并冒昧地做了一些编辑:
aria-hidden="false"然而,肖恩做了沉重的事.感谢Matt Burland,也指出需要支持tfoot.
请参阅http://jsfiddle.net/jhfrench/eNP2N/