1. 程式人生 > >table中head表頭固定,body滾動

table中head表頭固定,body滾動

<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();



這樣就可以了,這是我看到的,試了試,可以實現。