position属性取值为fixed时,则元素的位置将不受滚动条的影响,而是直接依据窗口定位,这就是将表头固定的最直接方法,网上其他途径感觉都是在走弯路。但是与此同时必须解决两个问题。第一:表体将随之不依据表头定位,而是依据body元素定位,因此表体将上移,导致表体靠上部分被表头遮挡,而且有重影。第二:表体的宽高和表头的宽高也将互相独立不再受文档流的约束,这导致单元格对不齐。
解决办法示例如下。其中,单元格上下对齐的问题可以通过设置padding margin 百分比width来解决,表头和表体也可以放在各自的div里。
样式单
<style type="text/css">
*{
padding:0px;
margin: 0px;
}
#thead {
/*固定表头*/
position:fixed;
/* 表头显示层次高于表体,防止空白行和表头重合时出现重影*/
z-index:2;
background:#ECECFF;
}
#spacetr{ /* 空白的tr 用来填补表头遮盖的数据*/
position:relative;
z-index:1;
}
.tdata { /* 显示表格数据的tr */
position:relative;
z-index:1;
}
</style>
js脚本
$(function(){
$("#spacetr").css("height",$("#thead").css("height"));
//将空白行的高度设置为和表头等高,使被遮挡的数据刚好下移表头高度的距离
});
jsp代码:
<div style="width:100%">
<%--<img src="${pageContext.request.contextPath}/images/post_head.jpg"/> --%>
<table id="table" border="1px gray solid " cellspacing="0" cellpadding="0" width="100%;" >
<tr id="thead">
<td width="9%" align="center">招聘学科</td>
<c:forEach items="${postnames}" var="postname">
<td valign="bottom" align="center">
${postname}
</td>
</c:forEach>
</tr>
<tr id="spacetr">
<td width="9%"></td>
<c:forEach items="${postnames}" var="postname">
<td>
</td>
</c:forEach>
</tr>
<c:forEach items="${shcoolsPostnumbers}" var="schoolPostnumbers">
<tr class="tdata">
<td width="9%" >${schoolPostnumbers.key}</td>
<c:forEach items="${schoolPostnumbers.value}" var="postnumber">
<td align="center"> ${postnumber} </td>
</c:forEach>
</tr>
</c:forEach>
</table>
</div>
分享到:
相关推荐
position属性取值为fixed时,则元素的位置将不受滚动条的影响,而是直接依据窗口定位,这就是将表头固定的最直接方法,下面有个不错的示例,大家可以学习下
css和html固定表头和第一列,可上下拖动和左右拖动
复杂表头固定行,固定列,纯css实现,样式可修改,可根据自己要求,更改表头,以及固定列的数量,本人亲测,确实好用
HTML5_html表头固定不滚动而内容滚动的效果,表格是基于Div CSS实现的,将表头固定住不滚动,而表格里面的每行数据随滚动条滚动。在显示较多数据时,当用户滚动鼠标中轮时,表格内容会滚动,而表头固定不变,可以将...
css固定table表头和列,亲测可用
比较好的固定表头和表列的例子。 解决了固定表头中rowspan显示异常的问题。
实现列头和行头的固定,非常实用,能让你尽可能的改变最少的代码实现要求的功能.
利用css和jquery实现table表头固定(浮动)显示,不复制表格内容,不更改页面元素,完全通过js设置样式来实现。
移动端项目,移动端table固定表头与固定第一列,HTML5和css3
用CSS实现的固定表头的HTML表格。 曾经在项目中实现过一个固定表头的HTML表格,但使用了非常臃肿的代码,因为实际上是画了三个一样的表格。一个纯粹用HTML和CSS实现的固定表头的表格,其简化代码如下: <html ...
HTML CSS 表格固定表头、和指定字段,实现表格内部滚动条
纯js和css完成表头的固定冻结。简单的几行代码便可以完成。
移动端项目,移动端table固定表头与固定第一列,HTML5和css3
锁定表头及固定左边列,原生JS原创代码 需要注意的问题: 1.表格的宽度以及表格每一列的宽度需要固定(特殊情况除外:当表格列数少并且表格总宽度明显小于表格父容器的宽度时,也就是表格列不存在自动换行的问题) 2...
一个首行表头、最左列和最右列固定中间滚动的html table样式。 一个首行表头、最左列和最右列固定中间滚动的html table样式。 一个首行表头、最左列和最右列固定中间滚动的html table样式。 一个首行表头、最左列...
Jquery table固定表头,固定列,全浏览器兼容 Jquery table固定表头,固定列,全浏览器兼容
纯CSS实现表头固定之所以难,主要在两点。一是占有最大市场份额的IE6不支持position:fixed。另一个,是人们想破头都想在一起表格中实现这种效果。不过外国真的人用纯CSS实现了这种效果,动用了数量惊人的CSS hacks...
功能特色: 1. 实现表格的列排序功能(点击表头,切换该列升降序),也可以指定哪一列不排序;...6. 表格外观样式可通过CSS灵活定制 7. 所需要引用的js文件非常小巧,压缩版仅2.5k 8. 使用非常简单,可进行参数配置