首页 > 开发 > CSS > 正文

html css将表头固定的最直接的方法

2020-03-24 16:09:29
字体:
来源:转载
供稿:网友

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 html' target='_blank'>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>

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表