js简单固定table表头及css问题分析。
<head>
<meta name="viewport" content="width=device-width" />
<title>Test02</title>
<script src="~/Content/js/jquery-1.7.2.min.js"></script>
<script>
$(document).ready(function () {
$("#tabhead").css("width", $("#MyTable").css("width"));
$("#tabdiv").scroll(function () { // 滚动条移动事件
var yheight = $("#tabdiv").scrollTop(); // 滚动条距顶端的距离
$("#tabhead").css("top", yheight + "px");
});
});
</script>
</head>
<body>
<div id="tabdiv" style="width: 500px; height: 150px; overflow: auto; position: relative; ">
<table id="MyTable" style=" text-align: center; table-layout: fixed; width: 100%;margin-top:50px;">
<col width="105" />
<col width="105" />
<col width="70" />
<col width="70" />
<col width="70" />
<col width="80" />
<col width="80" />
<col width="80" />
<thead id="tabhead" style="position: absolute;width:100%; top:0px;background-color:lightblue;">
<tr style="">
<th colspan="2" style="width: 210px;"><input type="checkbox" class="chbAll" checked="checked">课程</th>
<th style="width:70px;">总分</th>
<th style="width: 70px;">总分排名</th>
<th style="width: 70px;">平均分</th>
<th style="width: 80px;">平均分排名</th>
<th style="width: 80px;"> <input type="checkbox" class="chbKC" checked="checked">数学<br>百分制</th>
<th style="width: 80px;"> <input type="checkbox" class="chbKC" checked="checked">语文<br>等级制</th>
</tr>
</thead>
<tbody>
<tr>
<td>---</td>
<td>---</td>
<td>---</td>
<td>---</td>
<td>---</td>
<td>---</td>
<td>---</td>
<td>---</td>
</tr>
</tbody>
</table>
</div>
</body>
只用几行js,加几个css样式。不用贴层或改动表结构。(测试时请多加几行tr)
结果如图:上下滚动,thead不动;左右滚动,thead跟随移动
分析:
将thead 设为absolute定位,使之脱离文档流,再获取垂直滚动条距离顶部的滚动距离,作为thead 的top位置,并实时同步。
问题一:thead 脱离文档流后,超出tabdiv不会隐藏,且tbody上部会被遮挡。
解决:1,将tabdiv设为relative或absolute定位;2,为table加上上边距来抵消thead的高度,margin-top:50px;。
问题二:table超出div宽度后,tbody单元格会自动被压缩。
解决:table 样式加上table-layout: fixed; width: 100%;
并通过<col />元素来设置每列宽度。
问题三:thead超出div宽度后,thead单元格会自动被压缩,而tbody正常显示。
解决:js中直接将thead的宽度设为table的宽度,$("#tabhead").css("width", $("#MyTable").css("width"));
js简单固定table表头及css问题分析。的更多相关文章
- 固定table表头
<style> #box{ height:214px; width:500px; overflow-y:auto;/** 必须,否则当表格数据过多时,不会产生滚动条,而是自动延长该div的 ...
- [转] js实现html table 行,列锁定
js实现html table 表头,指定列锁定 实现效果如下: 感兴趣的朋友可以直接复制出来运行看效果. <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTM ...
- table 表头固定 thead固定. 1) 使用jquery.freezeheader.js
方法一: 使用jquery.freezeheader.js 固定表头: 1-: 初始化: <!DOCTYPE html> <html lang="en"> ...
- 网页制作中在头部固定悬浮table表头(thead)的方法
这两天接了一个需求,页面是这样的 然后需求是页面中的这个表格当页面向上滚动,且表格的表头到达窗口上方时,表头悬浮在页面的上方,表格正常滚动,这样表格内的数据可以随时看到表头内容. 一开始我认为这是极简 ...
- jQuery,Table表头固定插件chromatable存在的问题及解决办法
在最近的项目中需要将表格的表头固定,搜寻了大量的资料,发现chromatable插件还是比较方便的.但是当我在一个页面中多次使用 chromatable固定对个表格的表头时问题就出现了,首先说明系统的 ...
- 固定Table的头部和左边的列-在Knockout Js使用场景下
要求:固定Table的头部和左边的列 场景:Knockout Js被用于绑定Table的数据源. 固定HTML表格的头部和列是一个很常见的需求.此文:http://www.cnblogs.com/so ...
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"
Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...
- bootstrap table 实现固定悬浮table 表头并可以水平滚动
在开发项目中,需要将表格头部固定,而且表格大多数情况下是会水平滚动的.项目的css框架是bootstrap 3,故也可以叫做bootstrap table. 需要实现的是:表格头部固定,并且支持水平滚 ...
- (转)supertable像excel那样固定table的表头和第一列
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <title> ...
随机推荐
- MVC4 + WebAPI + EasyUI + Knockout-授权代码维护
我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(四)授权代码维护 一.前言 权限系统设计中,授权代码是用来控制数据访问权限的.授权代码说白了只是一树型结构的数据 ...
- 查看TOMCAT内存使用情况 以及修改方法
查看TOMCAT内存使用情况 <% double total = (Runtime.getRuntime().totalMemory()) / (1024.0 * 1024); double m ...
- Iveely Search Engine 0.4.0 的发布
千呼万唤始出来,Iveely Search Engine 0.4.0 的发布 经过无数个夜晚的奋战,以及无数个夜晚的失眠,Iveely Search Engine 0.4.0 终于熬出来了,这其中 ...
- CSS3 3D笨蛋教程
英文原文An Introduction to CSS 3-D Transforms 爱因斯坦说所有概念都必须介绍给儿童们,若他们无法了解,这些理论就毫无价值. 透视 一个元素需要一个透视点才能激活3D ...
- 《.NET 编程结构》专题汇总
<.NET 编程结构>专题汇总 前言 掌握一门技术,首要的是掌握其基础. 笔者从事.NET相关开发多年,也非常喜欢.NET,多年来也积累了很多相关的资料,在此将一些基础性的 ...
- 挖一下插件v1.5版本发布
Chrome图片下载插件,支持网页截屏 v.1.5更新说明: 1.增加下载图片按日期分类保存选项,便于管理,用户可根据需要开启/关闭此设置 2.增加网页图片采集快捷键: (1)采集页面图片(Ctrl+ ...
- Linux kernel中网络设备的管理
kernel中使用net_device结构来描述网络设备,这个结构是网络驱动及接口层中最重要的结构.该结构不仅描述了接口方面的信息,还包括硬件信息,致使该结构很大很复杂.通过这个结构,内核在底层的网络 ...
- poj1463 Strategic game (树状dp)
Strategic game Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 5498 Accepted: 2484 De ...
- c++代码的陪伴下----菜鸟的转变
在c++代码的陪伴下快乐的长大 学了c++也快一年了,在这里把自己的心得体会说一下吧. 1.感觉自己这一年做过的代码行数也不少,博客点击量和浏览量却不是很多,可能是自己所编的程序里面都是很基础的吧,对 ...
- JAXP的SAX解析
* 使用Sax解析XML文档 * * 使用Sax解析文档和DOM解析不一样. * 概述: * 是一种XML解析的替代方法.相比于DOM,SAX是一种速度更快,更有效的方法.它逐行扫描文档,一 ...