javascript - 使用 rowspan 和 colspan 属性修复表头并可滚动

标签 javascript html css

我想将表格标题固定到一个位置并允许表格的其余内容可滚动(下面的代码)。我在表格标题行中使用 colspan 和 rowsapn 属性。有什么办法可以解决吗?

<html>
   <body> 
   <div id="secondtable" style="width:100%; height:380px; overflow:auto;">
   <table class="mytable" style="width:100%; border-width:thin;" border="1"      cellpadding="9" cellspacing="0" align="center">    
                <tr class="tt" bgcolor="#0B2B62">
                    <th>No.</th>
                    <th>Store Name</th>
                    <th>Receipts</th>
                    <th colspan=2>Receipts vs Budget</th>
                    <th colspan=3>Receipts vs Last Year</th>
                    <th>Contribution</th>
                    <th colspan=2>Contribution vs Budget</th>
                </tr>
                <tr class="tt" style="background-color:#C2C2C2;">
                    <td></td>
                    <td></td>
                    <td></td>
                    <td><font color="black">Var &pound;</font></td>
                    <td><font color="black">Var %</td>
                    <td><font color="black">Var &pound;</font></td>
                    <td><font color="black">Var %</font></td>
                    <td><font color="black">Var</font></td>
                    <td></td>
                    <td><font color="black">Var &pound;</font></td>
                    <td><font color="black">Var %</font></td>
                </tr>
                <tr class="tt" style="background-color:#D7F2FF">
                    <td>&nbsp;</td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
        </table>
</div>
</body>
</html>

//这是CSS

table {

border-collapse:separate;
border-spacing: 0;
color:white;
background-color:white;
border: 1px solid black;
border-radius: 8px;
-moz-border-radius: 5px;
padding: 5px;
font-family:sans-serif;
}

.mytable{
background-color:#014483;
}

.tt{
border-color:#2B4F81;
}
.ttt{
background-color:#BBDBF4;
border:#2B4F81;
}

最佳答案

3 岁的问题,但是对于那些仍然没有解决这个问题的人(带有 rowspan 的表头)我终于有了使用 js 的方法。

<div id="table">
 <table>
   <thead>
     <!-- your head code -->
   </thead>
   <tbody>
     <!-- your body code -->
   </body>
 </table>
</div>

CSS

#table{
    height:200px; //for example 
    overflow-y:auto; 
}

JS

let statusCard = document.querySelector('#table');
    // add scroll event listener for change head's position 
    statusCard.addEventListener('scroll',e =>{
      let tableHead = document.querySelector('thead');
      let scrollTop =  statusCard.scrollTop;
      tableHead.style.transform = 'translateY(' + scrollTop + 'px)';
})

关于javascript - 使用 rowspan 和 colspan 属性修复表头并可滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34488071/

相关文章:

javascript - 根据html属性值分配css类

html - 在嵌入式 Jetty 上使用 DefaultServlet 提供静态 html 文件

html - 如何在文档根目录中创建 html 文件,然后在浏览器中打开它

php - 单元格内的背景颜色在 fpdf 中没有改变

javascript - 不确定为什么 CSS 选择器不起作用

javascript - 如何在 CRM 中使用 JavaScript 按对象类型代码检索实体名称?

javascript - 制作类似谷歌日历的拖动界面

javascript - 如何将 div 制作成 slider ?

html - 如何显示按下(:active) effect before lifting the finger?

jquery - jQuery 的垂直菜单功能