table表头固定只让内容滚动

table表头固定只让内容滚动

纯css实现表头固定,只tbody滚动 需要用到粘性固定属性 – position:sticky

  • position:sticky 用法:默认情况下,其表现为relative,在视窗与设置了该属性的元素之间,达到或超过其预设的 top、bottom、left、right,本属性会转变成 fixed,使 sticky 固定。

  • html结构:table外面需要包一层div

  •   <div class="table-box">
        <table>
          <thead>
            <tr>
              <th class="text-center">序号</th>
              <th class="text-center">名称</th>
              <th class="text-center">电话</th>
              <th class="text-center">备注</th>
              <th class="text-center">录入时间</th>
            </tr>
          </thead>
          <tbody>
            <tr v-for="item in [1,2,3]">
              <td class="text-center"></td>
              <td class="text-center"></td>
              <td class="text-center"></td>
              <td class="text-center"></td>
              <td class="text-center"></td>
            </tr>
          </tbody>
        </table>
      </div>
  • css是最关键的,需要分别对table自身和其父便签设置样式

  • // table父标签: 需要设置固定高度
      .table-box {
        height: 500px;
        overflow-y: auto;
        border: 1px solid #ddd;
      } 
    ​
    // table表格样式
      table {
        width: 100%;
        table-layout: fixed;
        
        thead th {
          position: sticky;
          top: -1px;
          z-index: 10;
        }
      }
如果想要实现表头固定内容滚动的效果,可以使用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
发出的红包

打赏作者

IT枫斗者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值