是否有一种跨浏览器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>;富</th>;
<;th>;酒吧</th>;
</tr>;
</thead>;
<;t车身>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
<;tr>&书信电报;td></td>&书信电报;td></td></tr>;
</t车身>;
</表>;
</部门>