Table实现表头固定 内容滚动

<div style="width: 800px;">
    <div class="table-head">
    <table>
        <colgroup>
            <col style="width: 80px;" />
            <col />
        </colgroup>
        <thead>
            <tr><th>序号</th><th>内容</th></tr>
        </thead>
    </table>
    </div>
    <div class="table-body">
    <table>
        <colgroup><col style="width: 80px;" /><col /></colgroup>
        <tbody>
            <tr><td>1</td><td>我只是用来测试的</td></tr>
            <tr><td>2</td><td>我只是用来测试的</td></tr>
            <tr><td>3</td><td>我只是用来测试的</td></tr>
            <tr><td>4</td><td>我只是用来测试的</td></tr>
            
        </tbody>
    </table>
    </div>
</div>

  

.table-head{padding-right:17px;background-color:#999;color:#000;}
.table-body{width:100%; height:300px;overflow-y:scroll;}
.table-head table,.table-body table{width:100%;}
.table-body table tr:nth-child(2n+1){background-color:#f2f2f2;}

  

其实关键之处在于

1、使用了colgroup标签,来对上下两个表格的列宽进行了定义,让他们保持一致。

2、上边的div .table-head添加了样式padding-right:17px,这个宽度是为了保证跟下边的div .table-body的滚动条保持一致,同时下边的表格.table-body添加了样式overflow-y:scroll;

转载于:https://www.cnblogs.com/yzssoft/p/10021686.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果想要实现表头固定内容滚动的效果,可以使用CSS中的position属性和JavaScript中的scroll事件来实现。具体的实现步骤如下: 1. 首先,将表格的表头和表格内容分别放入两个div中,并设置它们的class为"fixed-header"和"scrollable-content"。 2. 设置.fixed-header的position为fixed,top为0,left为0,z-index为1,使其固定在屏幕顶部。 3. 设置.scrollable-content的overflow为auto,并且设置高度和宽度。同时,设置一个padding-top值,使得滚动条不会遮挡住表格的第一行。 4. 在JavaScript中,监听.scrollable-content的scroll事件,并且在事件触发时,将.fixed-header的left值设置为负的.scrollable-content的scrollLeft值,使表头随着内容滚动滚动。 下面是一个示例代码: HTML代码: ``` <div class="fixed-header"> <table> <thead> <tr> <th>表头1</th> <th>表头2</th> <th>表头3</th> </tr> </thead> </table> </div> <div class="scrollable-content"> <table> <tbody> <tr> <td>内容1</td> <td>内容2</td> <td>内容3</td> </tr> ... </tbody> </table> </div> ``` CSS代码: ``` .fixed-header { position: fixed; top: 0; left: 0; z-index: 1; } .scrollable-content { overflow: auto; height: 200px; width: 100%; padding-top: 50px; /*表头高度*/ } ``` JavaScript代码: ``` $('.scrollable-content').on('scroll', function(){ $('.fixed-header').css({ 'left': -$(this).scrollLeft() }); }); ``` 上面的代码中,使用jQuery的on方法监听.scrollable-content的scroll事件,并且在事件触发时,将.fixed-header的left值设置为负的.scrollable-content的scrollLeft值。 需要注意的是,如果表格的表头内容列数不一致,可能会导致表头内容位置错乱的问题。如果出现这种情况,可以将表格的表头内容分别放到两个table中,并设置它们的宽度和列数相同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值