table中head表头固定,body滚动


转自:http://blog.csdn.net/hualele/article/details/52993315

 

		<div style="width: 800px;">
			<div class="table-head">
				<table>
					<colgroup>
						<col style="width: 80px;" />
						<col />
					</colgroup>
					<thead>
						<tr>
							<th>序号</th>
							<th>内容</th>
						</tr>
					</thead>
				</table>
			</div>
			<div class="table-body">
				<table>
					<colgroup>
						<col style="width: 80px;" />
						<col />
					</colgroup>
					<tbody>
						<tr>
							<td>1</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>2</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>3</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>4</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>5</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>6</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>7</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>8</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>9</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>10</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>11</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>12</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>13</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>14</td>
							<td>我只是用来测试的</td>
						</tr>
						<tr>
							<td>15</td>
							<td>我只是用来测试的</td>
						</tr>
					</tbody>
				</table>
			</div>
		</div>

  

下面是css样式

 

.table-head{padding-right:17px;background-color:#999;color:#000;}
.table-body{width:100%; height:300px;overflow-y:scroll;}
.table-head table,.table-body table{width:100%;}
.table-body table tr:nth-child(2n+1){background-color:#f2f2f2;}

  

 

1、使用了colgroup标签,来对上下两个表格的列宽进行了定义,让他们保持一致。

2、上边的div .table-head添加了样式 padding-right : 17px ,这个宽度是为了保证跟下边的div .table-body的滚动条保持一致,同时下边的表格.table-body添加了样式 overflow-y : scroll ;

 

以上方法试了后,发现有时会出现宽度不对齐的问题,当然了可以设置每个th td的宽度就可以修改这个问题了,但是

我觉得因为还是用了2个table的原因吧,觉得还是好复杂,所有就重新查询了一下,发现还真有好的解决方法:

一个table中thead  tbody就可以了。

 

 
 table tbody {
    display:block;
    height:500px;
    overflow-y:scroll;
}


table thead, tbody tr {
    display:table;
    width:100%;
    table-layout:fixed;
}


table thead {
    width: calc( 100% - 1em )
}

 

/*Firefox*/
	-moz-calc(expression);
	/*chrome safari*/
	-webkit-calc(expression);
	/*Standard */
	calc();

  

这样就可以了,这是我看到的,试了试,可以实现。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM