html css 如何将表头固定
        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>