响应式表格之固定表头的简单实现
内容摘要
数据展示时,表头的固定,可以有更好的可读性。
一、实现方式:
1、定义2个表格,一个absolute固定
<div class="table1-wapper">
<table width="100%" cellpadding="0" cell
一、实现方式:
1、定义2个表格,一个absolute固定
<div class="table1-wapper">
<table width="100%" cellpadding="0" cell
文章正文
数据展示时,表头的固定,可以有更好的可读性。
一、实现方式:
1、定义2个表格,一个absolute固定
1 2 3 4 5 6 7 8 9 10 | <div class = "table1-wapper" > <table width= "100%" cellpadding= "0" cellspacing= "0" id= "table1" > <tr><th><div>序号</div></th><th><div>股票名称</div></th>...</tr> <tr>...</tr> </table> </div> <div class = "fixed-table1-wapper" > <table width= "100%" cellpadding= "0" cellspacing= "0" id= "fixed-table1" > </table> </div> |
2、表1<th>复制,并插入表2
1 2 | var th_new=$( "#table1 tr" ).eq(0). clone (); $( "#fixed-table1" ).append(th_new); |
3、resize()方法,实时获取表1各列<th>宽度
1 2 3 4 5 6 7 | function trResize(){ $( "#fixed-table1 th" ).each( function (){ var num=$(this).index(); var th_width=$( "#table1 th" ).eq(num).width(); $(this).css( "width" ,th_width+ "px" ); }); } |
4、页面过小时,表格滚动带表头滚动
1 2 3 4 | $( ".table1-wapper" ).scroll( function (){ var scroll=-$(this).scrollLeft() $( ".fixed-table1-wapper" ).css( "left" ,scroll+ "px" ); }); |
二、注意细节:
1、宽度自适应、去除单元格间隙:
<table width="100%" cellpadding="0" cellspacing="0" ></table>
2、表格线:
直接<td>添加border,会出现边线重合;添加属性:border-collapse: collapse;
3、td宽度:
控制第一行宽度即可 <td width="70"></td> / <td width="20%"></td>
4、奇偶行颜色不同:
css: #table1 tr:nth-child(2n){background-color:#ccc;} ie7兼容性问题
jquery: $("#table1 tr:even").css("background-color","#ccc");
以下为完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | <!doctype html> <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" /> <title>表格整理</title> <link rel= "stylesheet" type= "text/css" href= "css/basic.css" > <script type= "text/javascript" src= "js/jquery-1.8.3.min.js" ></script> <style type= "text/css" > html{overflow:auto;} .table-wapper{width:100%;margin:30px auto;font-size:16px;position:relative;overflow:hidden;} .table1-wapper{height:200px;overflow-y:auto;} .table-wapper table{border:1px solid #f00;line-height:2;border-collapse: collapse;white-space:nowrap;} .table-wapper th{font-size:18px;font-weight:normal;background-color:#dbdbdb;} .table-wapper td{text-align:center;border:1px solid #f00;} .fixed-table1-wapper{position:absolute;top:0px;left:0px;background-color:#dbdbdb;} /*#table1 tr:nth-child(2n){background-color:#ccc;}*/ </style> </head> <body > <div class = "table-wapper" > <div class = "table1-wapper" > <table width= "100%" cellpadding= "0" cellspacing= "0" id= "table1" > <tr> <th>序号</th> <th>股票名称</th> <th>股票代码</th> <th>成交</th> <th>涨跌幅</th> <th>换手率</th> <th>行业板块</th> </tr> <tr> <td>1</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> <tr> <td>2</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> <tr> <td>3</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> <tr> <td>4</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> <tr> <td>5</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> <tr> <td>6</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> <tr> <td>7</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> <tr> <td>8</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> <tr> <td>9</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> <tr> <td>10</td> <td>光明乳业</td> <td>600597</td> <td>15.2</td> <td>+6.23%</td> <td>0.12%</td> <td>食品饮料</td> </tr> </table> </div> <div class = "fixed-table1-wapper" > <table width= "100%" cellpadding= "0" cellspacing= "0" id= "fixed-table1" > </table> </div> </div> <script type= "text/javascript" > $( function (){<BR> $( "#table1 tr:even" ).css( "background-color" , "#ccc" ); //奇偶行颜色 var inner_width=$( "#table1" ).outerWidth(); $( ".fixed-table1-wapper" ).css( "width" ,inner_width+ "px" ); var th_new=$( "#table1 tr" ).eq(0). clone (); $( "#fixed-table1" ).append(th_new); }) $(window).resize( function (){ trResize(); }); $( ".table1-wapper" ).scroll( function (){ var scroll=-$(this).scrollLeft() $( ".fixed-table1-wapper" ).css( "left" ,scroll+ "px" ); }); function trResize(){ var inner_width=$( "#table1" ).outerWidth(); $( ".fixed-table1-wapper" ).css( "width" ,inner_width+ "px" ); $( "#fixed-table1 th" ).each( function (){ var num=$(this).index(); var th_width=$( "#table1 th" ).eq(num).width(); //console.log("th_width:"+th_width); $(this).css( "width" ,th_width+ "px" ); }); } </script> </body> </html> |
以上这篇响应式表格之固定表头的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持phpstudy。
代码注释