如何用纯CSS固定thead实现表格滚动?tbody设置overflow之密

固定table的thead表头 立即下载

首先,大家是不是在做下面代码这样的尝试?

<table>
  <thead>
    <tr>
      <td>THEAD-TD1</td><td>THEAD-TD2</td>
    </tr>
  </thead>
  <tbody style="height:100px;overflow:auto;">
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
  </tbody>
</table>

然后发现,不论怎么调,期待中的滚动条并没有出现?有木有?


其实,只要再加一条属性display:block,就OK了:

<table>
  <thead>
    <tr>
      <td>THEAD-TD1</td><td>THEAD-TD2</td>
    </tr>
  </thead>
  <tbody style="height:100px;overflow:auto;display:block;">
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
  </tbody>
</table>

现在试试,期待已久的滚动条出现了,有木有? 原来,这是因为tbody默认是display:table-row-group。


可是,似乎哪里不对……

对的,列之间不再对齐了。因为thead的display默认属性是:table-header-group,跟tbody的table-row-group是配套使用的。现在你把他们其中一个改了,自然就不再对齐了。

那么,该怎么解决呢?我把国内国外的网站都翻了个遍,也没有人有好的办法,唯一的办法就是:给thead也设置display:block,同时thead和tbody对应的td设置同样的width。这也算是纯CSS方案的一点牺牲吧。

<table>
  <thead style="display:block;">
    <tr>
      <td style="width:100px;">THEAD-TD1</td><td style="width:100px;">THEAD-TD2</td>
    </tr>
  </thead>
  <tbody style="height:100px;overflow:auto;display:block;">
    <tr>
      <td style="width:100px;">TBODY-TD1</td><td style="width:100px;">TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
    <tr>
      <td>TBODY-TD1</td><td>TBODY-TD2</td>
    </tr>
  </tbody>
</table>

当然,如果不愿意做这样的牺牲,那至少目前还是只能配合我们强大的JS来实现了。

下面提供一段配合这个方案的自动适配td宽度的JS,基于JQuery的:

$(function(){
    $("table").children("thead").find("td,th").each(function(){
	    var idx = $(this).index();
		var td = $(this).closest("table").children("tbody")
		                .children("tr:first").children("td,th").eq(idx);
		$(this).width() > td.width() ? td.width($(this).width()) : $(this).width(td.width());
	});
});

浏览器支持情况:

firefox、chrome、safari均支持,IE10在声明html5(<!DOCTYPE HTML>)之后可以支持,IE9及以下均不支持。


用css给tbody加垂直滚动条的具体思路及样式代码 思路就是 1,把tbody设置成display:block,然后就对其高度设置一个固定值,overflow设置成auto。 2,把thead的tr设置成display:block。 3,因为都设置成block所以要给td手动添加宽度 width:200px 代码如下: 复制代码代码如下: <table class=”table”> <thead> <tr> <th>Id</th> <th>Name</th> <th>Category</th> <th>MonthAmount</th> <th>hasBackUp</th> <th>score</th> </tr> </thead> < 立即下载

相关推荐

【四旋翼】pixhawk2.4.8-地面站配置-APM固件-四旋翼从装机到试飞

因为MP版本和APM版本的适配问题,真的真的是很大一个坑。最好先走别人走过的路,走通了再去自由发挥,不然白白浪费时间。下面提供我试飞成功过的版本。下面提供任意版本固件和地面站的下载方法。

xifan的博客 3万+

HTML table表格 固定表头 tbody加滚动条

纯CSStable表格thead固定tbody滚动效果 由于项目需要,在表格中,当数据量越来越多时,就会出现滚动条,而在滚动的过程中,默认情况下表格头部会跟着表格内容一起滚动,导致看不到头部对应的字段名,影响体验效果! 实现思路: 将内容要滚动的区域控制在 tbody 标签中添加 overflow-y:auto; 样式,给 tr 标签添加table-layout:fixed;...

沐枫 2万+

器件物理与工艺:揭秘MOSFET寄生电容Cgd/Cgs的微观结构及演变

本文深入解析MOSFET寄生电容Cgd与Cgs的微观物理结构及其在开关过程中的非线性演变,重点探讨由Cgd反馈效应引发的米勒平台现象。通过分析器件物理机制与先进工艺技术,揭示电容特性对开关性能的影响,并提供工艺优化与设计策略,助力提升高频功率应用的效率与稳定性。

desk3的博客 1083

自定义滚动条、tbody加滚动条

tbody加滚动条,自定义滚动条

你的小可爱的博客~ 1472

VS2019+EasyX图形库实战:手把手教你用C语言打造消消乐小游戏(附完整源码)

本文详细介绍了如何使用VS2019和EasyX图形库从零开始构建一个C语言消消乐小游戏。通过环境配置、数据结构设计、界面绘制、交互实现到游戏逻辑完善的完整流程,帮助开发者掌握图形编程和游戏开发的核心技巧,并附有完整源码供参考。

bush的博客 186

病理图像处理个人手札(三)WSI & MIL

1.什么是WSI? WSI全称是Whole Slide Image,也就是全视野数字切片,主要应用在病理学细胞图像领域。WSI 是利用数字扫描仪对传统的病理切片进行扫描,采集具有高分辨率的数字图像,再通过计算机将得到的碎片化图像进行无缝拼接整合,制作可视化数字图像的一项技术。与传统载玻片相比,很好地解决了传统的玻璃切片易损坏、易褪色、易丢片、检索困难的问题。 一言以蔽之,WSI是对传统载玻片进行数字化。 由于是全视野,因此它将包含多尺度的切片在一个文件上面。因此WSI将使用到金字塔模型满足其支持不同分辨率的

baiweizeng的博客 1万+

html 表格选择滚动条,table设置tbody滚动条

jsp页面table中只让tbody 部分显示滚动条滚动,the2个table. 一个仅显示 table head部分, 另外一个仅显示 body部分. body部分的表, 设置 overflow:auto 即可. 难点: 2个table的 header 保持宽度一致, 以及左右滚动时保持一致. jquery 做个宽度自动匹配. 尝试下吧, 我想做的, 后来需CSS布局HTML小编今天和大家分享停...

weixin_36064196的博客 1703

Vivado ILA调试全攻略:从HDL实例化到Block Design的5个实战技巧

本文全面解析了Vivado集成逻辑分析仪(ILA)的五种核心调试方法,涵盖从HDL代码实例化到Block Design集成的实战技巧。详细对比了不同方法的优缺点与适用场景,并重点介绍了如何利用Debug Hub高效管理多时钟域复杂调试,旨在帮助FPGA开发者精准定位问题,显著提升板级调试效率。

weixin_29214199的博客 376

原生table:表格table中thead固定,tbody超出高度出现滚动条

首先认识一下表格的table-layout属性 tableLayout 属性用来显示表格单元格、行、列的算法规则。 tableLayout有如下三个值:autofixedinherit 值 描述 auto 默认。列(td,th)宽度由单元格内容设定。 (1) 给td指定的width不一定生效,td的width会自动调整 (2) text-overflo...

qq_37899792的博客 2万+

基于深度学习的三维重建算法——详解与实现

随着深度学习技术的迅猛发展,基于深度学习的三维重建算法在最近几年取得了显著的进展。而基于深度学习的三维重建算法通过利用深度神经网络,能够从大规模数据中学习到更准确、鲁棒的三维结构表示。本文综述了基于深度学习的三维重建算法,并给出了相应的源代码。随着深度学习技术的不断发展,我们相信基于深度学习的三维重建算法将会在未来得到更广泛的应用。实验结果表明,基于深度学习的三维重建算法在准确性和鲁棒性方面取得了显著的提升。以上是关于基于深度学习的三维重建算法的详细介绍与实现,希望对您有所帮助。

CyberGenius的博客 1228

2025年华为杯中国研究生数学建模竞赛C题 围岩裂隙精准识别与三维模型重构 思路+代码

report += f"**位置 {i+1}**: ({loc[0]:.1f}, {loc[1]:.1f}, {loc[2]:.1f})\n"# ==================== 高级U-Net模型 ====================# ==================== 数据预处理与增强 ====================# ==================== 采样方法比较分析 ====================

YOLO 1527

Bootstrap表格中,thead固定,tbody有垂直滚动条

Bootstrap表格中,thead固定,tbody有垂直滚动条 转载出处:https://www.cnblogs.com/LindaBlog/p/9203724.html 1、html源码:这里的table是使用的vue写法,实际生成的表格和一个一个写的tr th td无异 <div class="panel-body no-padding"> <table clas...

lover凡的博客 2423

AI 测试工程师 — 6 个月学习计划表

AI 转型测试工程师 —— 6 个月学习计划表

weixin_46453070的博客 1068

Chrome固定table表头thead,表体tbody滚动

主要是宽度(高度自行调整,表格样式自己调整):表头thead与表体tbody宽度必须一一对应相等的宽度,否则会走形,长短不一; (一般滚动条的宽度是30px左右,所以我设定table宽度比表头表体大30px;) jsp/html:                            A    <th style="width: 50px;">B         <th

zxy_925493682的博客 1715

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

tbody 滚动条设置

文章介绍了如何将滚动条设置在tbody标签上,并且表格整体和未设置滚动条一致;此外补充了一些table的冷门姿势。 How to set tbody height with overflow scroll 问题demo 解决问题demo 要想给tbody一个超出的滚动条,其实只需要给tbody设置一个固定height,以及overflow:auto也就是超出添加滚动条。但是table固有的disp...

weixin_34221036的博客 4820

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

table表格固定thead,tbody可滑动

<!DOCTYPE HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>转载自·威易网CSS教程</title> <style> table tbod...

weixin_30444105的博客 390

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

table表格,thead固定,tbody滚动条

如上图所示 之前 写的样式 不变, 想让 thead 固定 不动, tbody 增加滚动条,在样式中添加如下代码   table tbody { display: block; height: 195px; overflow-y: scroll; } table thead, tbody tr { ...

Gleason 1万+

CSS 实现 table 表头固定 tbody 显示垂直滚动条并自定义滚动条样式

一、最终效果图 二、关键代码 html 代码: <div class="table_info"> <table border="0" cellspacing="0" cellpadding="0" style="width: 100%;"> <thead> <tr> <th>项目账号</th> <th>项目名称</th> ...

zhang33565417的博客 3931

CSS table表格 表头head固定 内容tbody滚动

核心思想: 首先是给tbody设置 display:block; 把行内变成块元素,然后给 tbody 一个固定高度 和 overflow-y:scroll;,确保tbody多余的内容可以滑动。 给 thead 和 tbody tr 设置 display:table;,主要是 table-layout:fixed;,每个单元格均匀分配 为了 thead 和 tbody 对齐,给 thead 宽...

alokka的博客 1753

html table表格固定thead,tbody可滑动(转载)

资源来源于网络: 效果: 代码: <!DOCTYPE HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>转载自·威易网CSS教程</title> <style> table tbody { display:block;

然而老干妈早就看穿了一切 2888

html5 表格纵向滚动条,纯css实现table的表头固定tbody内容显示垂直滚动条

最近在做项目是经常用到table表格来做数据统计,数据少时还好,但是数据多就会导致整个页面看起来乱,用户体验不好,为了使得用户体验更好,所以就会为table的内容上显示滚动条,这样即使再多的数据也不怕因为过多导致页面显示难看。实现的方法有很多,这里列举几个比较好的整理下来,作为一个学习笔记,也为需要的小伙伴提供思路。首先要明确我们需要完成的效果:1.固定表头2.table垂直滚动条3.table列...

weixin_35937871的博客 2671

CSS设置table下tbody滚动条与thead对齐的方法

威易网CSS教程 table tbody {     display:block;     height:195px;     overflow-y:scroll; } table thead, tbody tr {     display:table;     width:100%;     table-layout:fixed; } table thead {

小白变不白 6111

css 和表头对齐 表格_CSS设置table下tbody滚动条与thead对齐的方法

客户有个需求,table的表头不动,但是表格内容需要限定高度加上滚动条,如果直接在tbody加上高度和overflow-y:scroll,thead的表头就对不齐。下面就是解决这个问题的方法:效果如下:威易网CSS教程table tbody {display:block;height:195px;overflow-y:scroll;}table thead, tbody tr {display:t...

weixin_35705450的博客 1061

table固定表头 thead固定 tbody出现滚动填

直接上代码 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>转载自·威易网CSS教程</title> <style> table tbody { disp...

qq_43765727的博客 429

CSS设置table下只有tbody的展现滚动条,表头不动

直接上代码,大家可以参考下 <style type="text/css"> table tbody { display:block; height:314px; overflow-y:scroll; -webkit-overflow-scrolling: touch; } /* tbody的滚动条是否显示 */ table tbod...

binghuozhi的博客 1829
上一篇: 基于jQuery的简单全选插件
下一篇: 善用encodeURI解决AJAX在IE10以下浏览器中的莫名BUG
Vilien
博客等级 码龄18年 35粉丝 17原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值