欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  tablescrollbar&headerfixed
 
  有很多页面由于数据量过大,会产生横纵滚动条。为了便于使用者观看,我们要把表头固定一下。根据这个需求写了个demo来实现这个功能。
 
  主要解决了几点问题:
 
  1.table实现横纵滚动条
 
  2.table表头固定
 
  3.table列宽自适应
 
  4.table内容不换行
 
  主要代码块
 
  css:
 
  
 
  
 
  .table-scroll{
 
  width:calc(100%-5px);
 
  overflow-x:scroll;
 
  white-space:nowrap;
 
  }
 
  .table-scrolltable{
 
  table-layout:fixed;
 
  width:calc(100%-10px);
 
  background-color:darkseagreen;
 
  }
 
  .table-scrollthead{
 
  display:table-row;
 
  background-color:bisque;
 
  }
 
  .table-scrolltbody{
 
  overflow-y:scroll;
 
  overflow-x:hidden;
 
  display:block;
 
  height:calc(100vh-300px);
 
  }
 
  .table-scrollth,td{
 
  width:160px;
 
  overflow:hidden;
 
  text-overflow:ellipsis;
 
  min-width:160px;
 
  border:1pxsolid#808080;
 
  }
 
  h4,h5{
 
  color:cornflowerblue;
 
  }
 
  js:
 
  
 
  
 
  
 
  $(function(){
 
  $('.table-scroll').scroll(function(){
 
  $('.table-scrolltable').width($('.table-scroll').width()
 
  +$('.table-scroll').scrollLeft());
 
  });
 
  vartableTdWidths=newArray();
 
  vartableWidth=0;
 
  vartableTr0Width=0;
 
  vartableThNum=0;
 
  vartableTr1Width=0;
 
  tableWidth=$('.table-scrolltable').css('width').replace('px','');
 
  tableThNum=$('.table-scrolltr:eq(0)').children('th').length;if($('.table-scrolltr').length==1){//headeronlyif(tableWidth>tableTr0Width){
 
  $('.table-scrolltr:eq(0)').children('th').each(function(i){
 
  $(this).width(parseInt(($(this).css('width').replace('px',''))
 
  +parseInt(Math.floor((tableWidth-tableTr0Width)/tableThNum)))+'px');
 
  });
 
  }
 
  }else{//headerandbody
 
  tableTr1Width=$('.table-scrolltr:eq(1)').css('width').replace('px','');
 
  $('.table-scrolltr:eq(1)').children('td').each(function(i){
 
  tableTdWidths[i]=$(this).css('width').replace('px','');
 
  });
 
  $('.table-scrolltr:eq(0)').children('th').each(function(i){if(parseInt($(this).css('width').replace('px',''))>
 
  parseInt(tableTdWidths[i])){
 
  tableTdWidths[i]=$(this).css('width').replace('px','');
 
  }
 
  });if(tableWidth>tableTr1Width){
 
  //setallthtdwidth
 
  $('.table-scrolltr').each(function(i){
 
  $(this).children().each(function(j){
 
  $(this).css('min-width',(parseInt(tableTdWidths[j])
 
  +parseInt(Math.floor((tableWidth-tableTr1Width)/
 
  tableThNum)))+'px');
 
  });
 
  });
 
  }else{
 
  //method1:setallthtdwidth
 
  $('.table-scrolltr').each(function(i){
 
  $(this).children().each(function(j){
 
  $(this).css('min-width',tableTdWidths[j]+'px');
 
  });
 
  });
 
  }
 
  }
 
  });
 
  html:
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  <body>
 
  <h4>完成效果:1.固定表头2.table横纵滚动条3.table列宽自适应4.table内容不换行</h4>
 
  <pclass="table-scroll">
 
  <table>
 
  <thead>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  <th>title1</th>
 
  </thead>
 
  <tbody>
 
  <tr>
 
  <td>1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>2</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>3</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>4</td>
 
  <td>body1body1body1body1body1body1body1body1body1body1body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1body1body1body1body1body1body1body1body1body1body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>5</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>6</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>7</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>8</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>9</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>10</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>11</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>12</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>13</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>14</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>15</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>16</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>17</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>18</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>19</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>20</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>21</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>22</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>23</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>24</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>25</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>26</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>27</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>28</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>28</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>29</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  <tr>
 
  <td>30</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  <td>body1</td>
 
  </tr>
 
  </tbody>
 
  </table>
 
  </p>
 
  </body>
 
  网上也有很多的例子,但是实现的效果不是想要的,自己工作需要做了一下,画面不好看,重点看效果,如有问题请指正!





本文转载自中文网


 

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h55036.shtml