HTML table固定表头

最近尝试了几种HTML的table固定表头的方法..额...各有利弊,但很尴尬.....

1.thead和tbody的display设置为block;

这种可以实现,但是需要提前设置好每个th和td的宽度,否则th和对应的td会错开,无法对齐;

2.用两个table模拟,第一个作为thead,第二个作为tbody;

需要动态设置单元格宽度,基本上满足需求,但是在firefox中,会有一点点瑕疵,单元格边框会错开一点点;

3.今天在<前端乱炖>上找到的一个好方法,很好用,利用transform动态设置thead的scrollTop属性

模拟出来的固定表头,相对前两个方法简单很多,效果也很不错;

下面是原文链接:

http://www.html-js.com/article/cssyanjiu-css3shixiangudingbiaogetoubuerwuxushezhidanyuangetddikuandu%204019

2017-0524

有朋友发现了第三种方法的一个bug

没有边框是是没有任何问题的   如果th,td有边框的话  在滚动之后,th的边框会消失

经测试,发现原因为在transform时,th中的边框并没有移动,只有文字内容和背景色移动了, 而且再移动回初始位置时(即表格顶部),

背景色会盖在边框上面,导致看不到th的边框了

暂时只想到了一种勉强的替代方法, 就是在th中增加div, 这样 背景色,文字内容在滚动时,便不会覆盖边框了

但是在滚动时, 还是会有点儿瑕疵....

HTML table固定表头

如果路过的大神感兴趣....希望能够帮忙解决掉......

上一篇:ant design 的Table组件固定表头时不对齐


下一篇:解决react使用antd table组件固定表头后,表头和表体列不对齐以及配置fixed固定左右侧后行高度不对齐