如何使用 CSS制作具有固定标题的可滚动表

我想让我的表头固定。表存在于可滚动的 div 中。请在这里查看我的代码:http://jsfiddle.net/w7Mm8/114/请建议我解决这个问题。

我想让我的表头固定。表存在于可滚动的 div 中。请在这里查看我的代码:http://jsfiddle.net/w7Mm8/114/请建议我解决这个问题。

谢谢

My Code:
<div style="position: absolute; height: 200px; overflow: auto; ">
    <div style="height: 250px;">
        <table border="1">
            <th>head1</th>
            <th>head2</th>
            <th>head3</th>
            <th>head4</th>
            <tr>
                <td>row 1, cell 1</td>
                <td>row 1, cell 2</td>
                <td>row 1, cell 2</td>
                <td>row 1, cell 2</td>
            </tr>
            <tr>
                <td>row 2, cell 1</td>
                <td>row 2, cell 2</td>
                <td>row 1, cell 2</td>
                <td>row 1, cell 2</td>
            </tr>
        </table>
    </div>
</div>
63

您想要做的是将表的内容与表的标题分开。您只希望滚动<th>元素。您可以使用<tbody><thead>元素轻松地在 HTML 中定义这种分离。
现在表头和表体仍然彼此连接,它们仍然可以具有相同的宽度

table tbody, table thead
{
    display: block;
}

现在,您可以将滚动设置为表的主体:

table tbody 
{
   overflow: auto;
   height: 100px;
}

最后,因为<thead>不再与主体共享相同的宽度,您应该为表的标题设置静态宽度:

th
{
    width: 72px;
}

您还应该为<td>设置静态宽度。这解决了未对齐列的问题。

td
{
    width: 72px;
}
<tr>
     <th>head1</th>
     <th>head2</th>
     <th>head3</th>
     <th>head4</th>
</tr>

我希望这就是你的意思。

jsFiddle Addendum

如果您希望对列宽度有更多的控制,让它们在宽度上彼此不同,并且当然保持标题和正文列对齐,则可以使用以下示例:

    table th:nth-child(1), td:nth-child(1) { min-width: 50px;  max-width: 50px; }
    table th:nth-child(2), td:nth-child(2) { min-width: 100px; max-width: 100px; }
    table th:nth-child(3), td:nth-child(3) { min-width: 150px; max-width: 150px; }
    table th:nth-child(4), td:nth-child(4) { min-width: 200px; max-width: 200px; }
5

我能想到一个厚脸皮的方式来做到这一点,我不认为这将是最好的选择,但它会工作。

将标题创建为单独的表,然后将另一个放在 div 中并设置最大大小,然后使用overflow允许滚动进入。

table {
  width: 500px;
}
.scroll {
  max-height: 60px;
  overflow: auto;
}
<table border="1">
  <tr>
  <th>head1</th>
  <th>head2</th>
  <th>head3</th>
  <th>head4</th>
  </tr>
</table>
<div class="scroll">
  <table>
    <tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
    <tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
    <tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
    <tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
    <tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
    <tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
    <tr><td>More Text</td><td>More Text</td><td>More Text</td><td>More Text</td></tr>
    <tr><td>Text Text</td><td>Text Text</td><td>Text Text</td><td>Text Text</td></tr>
    <tr><td>Even More Text Text</td><td>Even More Text Text</td><td>Even More Text Text</td><td>Even More Text Text</td></tr>
  </table>
</div>

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(683)
与 React-Router的活动链路
上一篇
一次只展开一个折叠 (material-ui)-React
下一篇

相关推荐

  • css的边框:Welcome!

    示例示例CSS边框是指在HTML元素上添加边框的一种样式。它可以使元素看起来更加突出,并且可以用来控制元素的外观和布局。CSS边框有四种属性:border-style,border-width,border-color和border-radius。…

    2023-01-19 01:24:45
    0 26 38
  • css选择器nthchild:The nth-child Selector

    CSS 选择器 nth-child 是一种 CSS 伪类选择器,可以用来匹配特定的元素。它可以用来选择父元素的第 n 个子元素。…

    2023-01-12 14:18:15
    0 77 88
  • css 公共样式:标题

    示例示例CSS公共样式是指在页面中,多个元素共享的样式,可以减少代码重复,提高代码的可维护性。例如:…

    2023-02-04 15:29:26
    0 39 98
  • css有几种引入方式## 五种CSS引入方式

    示例示例CSS有三种引入方式:外部引用:…

    2023-01-11 05:01:16
    0 25 95
  • css五角星:**放眼未来,追求梦想**

    CSS五角星是一种用CSS代码绘制的五角星图形。它通过使用CSS中的border-radius属性,以及设置边框的颜色、宽度和样式来实现。下面是一个典型的CSS五角星的代码示例:…

    2023-01-09 09:00:04
    0 52 88
  • css文字缩进:标题

    CSS文字缩进,可以使用text-indent属性来实现,该属性指定文本块中首行文本的缩进距离。代码示例:…

    2023-02-05 10:29:28
    0 52 19
  • css波纹扩散:Unlock the Power of CSS Wave Diffusion

    CSS波纹扩散是一种基于CSS的动画效果,它可以让一个元素在页面上产生一个波纹扩散的效果。代码如下:…

    2023-01-17 07:15:53
    0 74 42
  • css文字靠底部:标题

    可以使用`-align`属性来实现,代码如下:…

    2023-02-02 01:42:44
    0 17 49

发表评论

登录 后才能评论

评论列表(62条)