有固定标题的HTML表格?

是否有一种跨浏览器CSS/JavaScript技术来显示一个长HTML表,这样列标题在屏幕上保持不变,而不会随表体滚动。想想Microsoft Excel中的“冻结窗格”效果

我希望能够滚动浏览表的内容,但始终能够看到顶部的列标题

这可以用四行代码清楚地解决

如果您只关心现代浏览器,那么使用CSS转换可以更容易地实现固定标题。听起来很奇怪,但效果很好:

  • HTML和CSS保持原样
  • 没有外部JavaScript依赖项
  • 四行代码
  • 适用于所有配置(表布局:固定等)
document.getElementById(“wrap”).addEventListener(“scroll”,function()){
var translate=“translate(0,+this.scrollTop+“px)”;
this.querySelector(“thead”).style.transform=translate;
});

除Internet之外,对CSS转换的支持非常广泛;探索者;8-

以下是供参考的完整示例:

document.getElementById(“wrap”).addEventListener(“scroll”,function(){
var translate=“translate(0,+this.scrollTop+“px)”;
this.querySelector(“thead”).style.transform=translate;
});
/*您现有的容器*/
#包裹{
溢出:自动;
高度:400px;
}
/*演示用CSS*/
运输署{
背景颜色:绿色;
宽度:200px;
高度:100px;
}
<div id=“wrap”>
<表>
<thead>
<tr>
<th>富&lt/th>
<th>酒吧&lt/th>
&lt/tr>
&lt/thead>
<t车身>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
<tr&gt&书信电报;td&gt&lt/td&gt&书信电报;td&gt&lt/td&gt&lt/tr>
&lt/t车身>
&lt/表>
&lt/部门&gt

发表评论