jquery - 可滚动表格,而标题始终位于顶部并正确对齐

标签 jquery css html

我创建了一个包含 3 个标题的表,功能应该是标题将保持在顶部,而内容/数据将在下方滚动,因为它将由服务器填充我的问题在于标题的对齐方式和相应的数据。因为我使用的是 Display: inline-block 或 block header 并且数据没有对齐在一起,所以我尝试通过添加一些填充来手动完成,但另一个问题在于当我调整视口(viewport)大小时标题的响应能力更改未正确对齐。下面是我正在工作的代码示例

Jsfiddle 链接:https://jsfiddle.net/pynechan/5bxm9n0p/

table {
  width:100%
}

tbody {
    border:1px solid red;
    height:300px;
    overflow:auto;
    display:inline-block;
}

thead {
    background-color:#0c0;
    color:#fff;

}
<h2>Header fixed</h2>
<br/>
<br/>

<table>
    <thead><tr><th>HEADER</th><th>HEADER 2</th><th>HEADER 3</th></tr></thead>
  
    <tbody>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
        <tr><td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td></tr>
    </tbody>
</table>

最佳答案

你能试试下面的吗?标题将是静态的,而表格内容滚动时标题将保持静态。

 table {
    max-width:980px;
    table-layout:fixed;
    margin:auto;
}
th, td {
    padding:5px 10px;
    border:1px solid #000;
}
thead, tfoot {
    background:#f9f9f9;
    display:table;
    width:100%;
    width:calc(100% - 18px);
}
tbody {
    height:300px;
    overflow:auto;
    overflow-x:hidden;
    display:block;
    width:100%;
}
tbody tr {
    display:table;
    width:100%;
    table-layout:fixed;
}
        <table>
  <thead>
    <tr>
      <th scope="col">Header 1</th>
      <th scope="col">Header 2</th>
      <th scope="col">Header 3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>
    <tr>
      <td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>
    <tr>
      <td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>
    <tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>
    <tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>
    <tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>
    <tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>
    <tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>
    <tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>
    <tr>
<td>1. DATA</td><td>1. DATA 2</td><td>1. DATA 3</td>
    </tr>

</table>

关于jquery - 可滚动表格,而标题始终位于顶部并正确对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49795059/

相关文章:

javascript - 在旧类(class)之前添加自定义类(class)

javascript - 为什么在引用第二个字段时,值取自第一个字段?

Jquery Nth-Child 问题

javascript - 如何将样式从 react semantic-ui Card 组件传递到 img 标签

html - 使用最小/最大宽度和最小/最大设备宽度无法使多个媒体查询工作

php - 使用 php 以 ul 和 li 格式显示来自 mysql 的记录

javascript - 已在控制台日志上打印的 undefined variable

css - 是否有任何特定于 Chrome 的技术来范围/隔离 CSS?

javascript - 无法在 Safari 的 CSS 中设置标签标签的宽度

html - 更改背景图像的默认大小