gpt4 book ai didi

html - 如何制作带有粘性标题的可滚动表格

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:01 25 4
gpt4 key购买 nike

我有一张又宽又高的 table ,我希望最上面的行和列始终可见。位置:粘性来拯救!

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sticky test</title>
<style>
th { padding: 20px 100px; background: #eeeeee; }
td { padding: 50px 200px; background: #fafafa; }
thead th:first-child { position: sticky; top: 0; left: 0; z-index: 3; }
thead th:not(:first-child) { position: sticky; top: 0; z-index: 2; }
tbody th { position: sticky; left: 0; z-index: 1; }
</style>
</head>
<body>
<h1>Sticky test</h1>
<table>
<thead>
<tr><th>Foo</th><th>Bar</th><th>Foo</th><th>Bar</th></tr>
</thead>
<tbody>
<tr><th>a</th><td>1</td><td>2</td><td>3</td></tr>
<tr><th>b</th><td>4</td><td>5</td><td>6</td></tr>
<tr><th>c</th><td>7</td><td>8</td><td>9</td></tr>
<tr><th>d</th><td>10</td><td>11</td><td>12</td></tr>
<tr><th>e</th><td>13</td><td>14</td><td>15</td></tr>
<tr><th>f</th><td>16</td><td>17</td><td>18</td></tr>
<tr><th>g</th><td>19</td><td>20</td><td>21</td></tr>
<tr><th>h</th><td>22</td><td>23</td><td>24</td></tr>
<tr><th>i</th><td>25</td><td>26</td><td>27</td></tr>
<tr><th>j</th><td>28</td><td>29</td><td>30</td></tr>
</tbody>
</table>
<p>That's all, folks!</p>
</body>
</html>

这很好用。但现在整个页面都可以水平滚动,我宁愿只有表格可以滚动。

我的尝试:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sticky test</title>
<style>
th { padding: 20px 100px; background: #eeeeee; }
td { padding: 50px 200px; background: #fafafa; }
thead th:first-child { position: sticky; top: 0; left: 0; z-index: 3; }
thead th:not(:first-child) { position: sticky; top: 0; z-index: 2; }
tbody th { position: sticky; left: 0; z-index: 1; }
.scrollable { max-width: 100%; overflow-x: scroll; }
</style>
</head>
<body>
<h1>Sticky test</h1>
<div class="scrollable">
<table>
<thead>
<tr><th>Foo</th><th>Bar</th><th>Foo</th><th>Bar</th></tr>
</thead>
<tbody>
<tr><th>a</th><td>1</td><td>2</td><td>3</td></tr>
<tr><th>b</th><td>4</td><td>5</td><td>6</td></tr>
<tr><th>c</th><td>7</td><td>8</td><td>9</td></tr>
<tr><th>d</th><td>10</td><td>11</td><td>12</td></tr>
<tr><th>e</th><td>13</td><td>14</td><td>15</td></tr>
<tr><th>f</th><td>16</td><td>17</td><td>18</td></tr>
<tr><th>g</th><td>19</td><td>20</td><td>21</td></tr>
<tr><th>h</th><td>22</td><td>23</td><td>24</td></tr>
<tr><th>i</th><td>25</td><td>26</td><td>27</td></tr>
<tr><th>j</th><td>28</td><td>29</td><td>30</td></tr>
</tbody>
</table>
</div>
<p>That's all, folks!</p>
</body>
</html>

确实,表格现在可以水平滚动了。但是顶行的粘性现在被打破了。 (左边的列仍然是适当的粘性。)

我该如何解决这个问题?

最佳答案

请参阅issue posted at W3C

如果不设置 max-height 和

overflow-y: scroll;

如果可以,请到您的餐 table 。

如果没有,试试这样的东西,看看它是否适合你:

<div class="">
<table style="position: sticky; top: 0;">
<thead>
<tr><th>Foo</th><th>Bar</th><th>Foo</th><th>Bar</th></tr>
</thead>
</table>

<table>
<tbody>
<tr><th>a</th><td>1</td><td>2</td><td>3</td></tr>
<tr><th>b</th><td>4</td><td>5</td><td>6</td></tr>
...

这是两个表格,其中一个是粘性的(标题部分),直到到达包装 div 的末尾。然后,您可以使它们都可 x 滚动,隐藏标题滚动条并使用三行 jQuery 将滚动链接到底部滚动条(如果您使用的话)。

检查 fiddle .

关于html - 如何制作带有粘性标题的可滚动表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51338545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com