html table表头不变滚动表体

本文探讨了在网页中创建表格时,如何在不移动表头的情况下实现纵向滚动条的功能。通过使用CSS属性和特定的HTML结构,可以有效解决表格在内容过多时,表头与内容一同滚动的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

table 需要出现纵向滚动条时,大多数情况会在table外面包一层div 设置css属性  overflow:auto 来实现table出现滚动条但这样做有个问题,滑动表格是移动整体 表头也会被移动。

解决办法有如下

1、 设置table  表头和表体

关键css

.table{
            width: 100%;
            border-collapse:collapse; 
            border-spacing:0; 
        }
        .fixedThead{
            display: block;
            width: 100%;
        }
        .scrollTbody{
            display: block;
            height: 262px;
            overflow: auto;
            width: 100%;
        }
        .table td,.table th {
            width: 200px;
            border-bottom: none;
            border-left: none;
            border-right: 1px solid #CCC;
            border-top: 1px solid #DDD;
            padding: 2px 3px 3px 4px
        }


// html代码

<table class="table">
        <thead class="fixedThead">
            <th>header</th><th>header two</th>
        </thead>
        <tbody class="scrollTbody">
            <tr><td>fuck 1</td><td>fuck 2</td></tr>
            <tr><td>fuck 1</td><td>fuck 2</td></tr>
            <tr><td>fuck 1</td><td>fuck 2</td></tr>
   
        </tbody>
    </table>

// 3个Table 主、表头、表体


<table width="100%" align="center" border=0>
       <tr>
       <table  width="100%"  border=1>
       <tr>
              <td width="20%">
                     biaoti1321
              </td>
              <td width="20%">
                     biaoti2321321
              </td>
			   <td width="20%">
                     biaoti2321321
              </td>
			  <td width="20%">
                     biaoti2321321
              </td>
			  <td width="20%">
                     biaoti2321321
              </td>
           
       </tr>
       </table>
       </tr>
   <tr>
   <td align="center" width="100%">
    <div  style="overflow-y:auto; width:100%;height:100px">
    <table width="100%" border=1>
       <tr>
              <td>111</td>
              <td>111</td>
			   <td>111</td>
       <td>111</td>
			   <td>111</td>
       </tr>
              <tr>
              <td>111</td>
              <td>111</td>
			   <td>111</td>
             <td>111</td>
			   <td>111</td>
       </tr>                
   </table>

存在一个问题 如果表头个数为奇数时  不好设置td宽度百分比 



### HTML CSS 实现 Table Tbody 滚动固定 Thead 表头 为了实现格中的 `tbody` 部分可以滚动而 `thead` 固定的效果,可以通过CSS样式来控制。以下是具方法: #### 方法一:推荐方式 通过设置特定的CSS属性使 `thead` 和 `tbody` 能够独立处理其展示特性。 ```css #tableid>thead>tr { display: table; width: 100%; table-layout: fixed; }[^1] #tableid>tbody { display: block; height: 271px; overflow-y: scroll; } #tableid>tbody>tr { display: table; width: 100%; table-layout: fixed; } ``` 此段代码的关键在于给定了 `tbody` 一个具的高度并启用了溢出滚动功能;同时保持了每一行的数据按照格的形式呈现出来,从而实现了表头固定的功能。 #### 方法二:调整宽度以适应滚动条的存在 考虑到浏览器默认情况下会为滚动区域增加额外的空间(即滚动条),这可能会导致列宽对齐的问题。因此,在某些场景下可能还需要特别指定 `thead` 的宽度以便更好地匹配实际可见的内容区大小。 ```css /* 关键设置 tbody 出现滚动条 */ table tbody { display: block; height: 80px; overflow-y: scroll; overflow-x: hidden; } table thead, tbody tr { display: table; width: 100%; table-layout: fixed; } /* 关键设置:滚动条默认宽度是 16px 将 thead 的宽度减去这个值 */ table thead { width: calc(100% - 1em); } table thead th { background: #ccc; } ``` 这种方法仅解决了基本的需求——让 `tbody` 可滚动的同时保持 `thead` 不变,而且还考虑到了由于引入滚动条所引起的潜在布局错位问题,确保即使存在滚动条的情况下也能维持良好的视觉效果和用户验[^3]。 对于更复杂的交互逻辑或是态数据加载的情况,则建议采用前端框架如 Vue.js 结合 Element UI 组件库来进行开发,这样可以获得更加灵活且易于维护的应用程序结构[^2]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值