转自: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();
这样就可以了,这是我看到的,试了试,可以实现。