简体   繁体   English

如何使CSS滚动固定在表标题和第一列上(我也对使用JS或JQuery的想法持开放态度)

[英]How do I make my CSS scrolling fixed to table header and the first column (I'm also open to the idea using JS or JQuery)

I am struggling trying to keep left column where my items names are from scrolling when moving left and right from my matrix table. 当我从矩阵表向左和向右移动时,我一直在努力保持滚动显示我的项目名称所在的左列。 I also want to keep the top header table from scrolling when moving up and down the scroll bar. 我还希望在上下滚动条时不滚动顶部标题表。 Can I do this in CSS? 我可以在CSS中执行此操作吗? I am using bootstrap. 我正在使用引导程序。 I would be ok doing it in JavaScript or JQuery if I have to. 如果需要,我可以在JavaScript或JQuery中做到这一点。 I've tried changing my code to have a fixed header, but it looks all messed up. 我尝试将代码更改为具有固定的标头,但看起来一团糟。

My code in fiddle 我的小提琴代码

 div.scroll { width: 99%; height: 100px; overflow: scroll; } 
 <h1><strong>Inventories</strong></h1> <div class="scroll"> <table class="table table-striped" style="width:1500px"> <thead> <tr> <th></th> <th style="text-align: center">Atlanta</th> <th style="text-align: center">Detroit</th> <th style="text-align: center">Orlando</th> <th style="text-align: center">Rochester</th> <th style="text-align: center">Bellevue </th> <th style="text-align: center">Madison </th> <th style="text-align: center">Santa Barbara </th> <th style="text-align: center">Bismarck </th> <th style="text-align: center">Ann Arbor</th> <th style="text-align: center">Sioux Falls</th> </tr> </thead> <tbody> <tr> <td style="text-align: center ">Apple MacBook Air</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">4</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> </tr> <tr> <td style="text-align: center ">Asus Zenbook</td> <td style="text-align: center ">3</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> </tr> <tr> <td style="text-align: center ">Dell XPS</td> <td style="text-align: center ">7</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">7</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">7</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">4</td> </tr> <td style="text-align: center ">Acer Travelmate P645.</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> </tr> <tr> <td style="text-align: center ">Sony Vaio Pro 13 Touch</td> <td style="text-align: center ">3</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> </tr> <tr> <td style="text-align: center ">Samsung ATIV Book 9 Plus 13-inch (2015)</td> <td style="text-align: center ">7</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">7</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">7</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">4</td> </tr> <td style="text-align: center ">HP Spectre X360.</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">4</td> </tr> <tr> <td style="text-align: center ">MacBook</td> <td style="text-align: center ">3</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">4</td> </tr> <tr> <td style="text-align: center "> UX305</td> <td style="text-align: center ">7</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> </tr> <tr> <td style="text-align: center ">Lenovo ThinkPad T450s (Business Laptop)</td> <td style="text-align: center ">7</td> <td style="text-align: center ">5</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">3</td> <td style="text-align: center ">2</td> <td style="text-align: center ">4</td> <td style="text-align: center ">4</td> </tr> </tbody> </table> </div> 

I had the same problem two days before. 前两天我遇到了同样的问题。 The way I have made this working is to make two tables one under other. 我进行此工作的方法是使两个表一个接一个。 So the top table will be the header, and the bottom table will be your table body. 因此,顶表将是表头,而底表将是表主体。 So the "header" table will sit on place and the second table will need overflow:auto . 因此,“ header”表将就位,第二个表将需要overflow:auto Also you should remove the scrollbar from the second table to let it keep it's width. 另外,您应该从第二个表中删除滚动条以使其保持宽度。

The minus of this implementation is that you should define widths for all columns of your both tables to make them fit each other properly. 此实现的缺点是您应该为两个表的所有列定义宽度,以使它们正确地相互适配。

By the way, you can define text-align: center in your css for th and td . 顺便说一句,您可以在thtd css中定义text-align: center

Let me know please if you need more help. 如果您需要更多帮助,请告诉我。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM