我想让我的表的标题固定.表中存在可滚动的div.以下是我的代码
<div id="table-wrapper"> <div id="table-scroll"> <table bgcolor="white" border="0" cellpadding="0" cellspacing="0" id="header-fixed" width="100%" overflow="scroll" class="scrollTable"> <thead> <tr> <th>Order ID</th> <th>Order Date</th> <th>Status</th> <th>Vol Number</th> <th>Bonus Paid</th> <th>Reason for no Bonus</th> </tr> </thead> <tbody> <tr> <td><%=snd.getOrderId()%></td> <td><%=snd.getDateCaptured()%></td> <td><%=snd.getOrderStatus()%></td> <td>Data Not Available</td> <td>Data Not Available</td> <td>Data Not Available</td> </tr> </tbody> </table> </div> </div>
以下是我的CSS,我正在为上面的div使用:
#table-wrapper { position:relative; } #table-scroll { height:250px; overflow:auto; margin-top:20px; } #table-wrapper table { width:100%; } #table-wrapper table * { background:white; color:black; } #table-wrapper table thead th .text { position:absolute; top:-20px; z-index:2; height:20px; width:35%; border:1px solid red; }
解决方法
做这样的事情怎么样?我从头开始做了
我所做的是使用2个表,一个用于标题,它将永远是静态的,而另一个表呈现单元格,我使用固定高度的div元素包装,并启用滚动,使用overflow- y:自动;
还要确保使用table-layout:fixed;使用固定宽度的td元素,以便当使用没有空格的字符串时,您的表不会中断,因此为了使用word-wrap来断开该字符串am:break-word;
.wrap { width: 352px; } .wrap table { width: 300px; table-layout: fixed; } table tr td { padding: 5px; border: 1px solid #eee; width: 100px; word-wrap: break-word; } table.head tr td { background: #eee; } .inner_table { height: 100px; overflow-y: auto; } <div class="wrap"> <table class="head"> <tr> <td>Head 1</td> <td>Head 1</td> <td>Head 1</td> </tr> </table> <div class="inner_table"> <table> <tr> <td>Body 1</td> <td>Body 1</td> <td>Body 1</td> </tr> <!-- Some more tr's --> </table> </div> </div>