不使用固定高度和 overflow-y 的 HTML 表格 float 标题

标签 html css html-table

我看到的所有带有表格和固定标题的示例都使用了 css

tbody {
  height: 120px;
  overflow-y: auto;
}

这会创建双垂直滚动条。一个来自浏览器本身,另一个来自表格。如果一个页面只有一个 width:100% 的表格,那么这个双滚动条就非常丑陋而且没有响应。有没有另一种方法可以在不设置 tbody 高度的情况下执行此操作,以便只有正文行从屏幕上滚动,表格标题行始终可见并且浏览器中只有一个垂直滚动条?

最佳答案

如前所述,使用表格和响应式设计不能齐头并进。我已经尝试了很多插件来解决这个问题,但没有一个能很好地解决这个问题。

但在回答滚动条问题时,您可以使用 position:sticky; 使表头在您垂直滚动表格时留在屏幕上。

我希望我正确理解了这个问题:

header,footer {
  height: 50px;
  width: 100%;
  background: #333;
  color: #fff;
  text-align: center;
}

#spacer {
  height: 500px;
  width: 100%;
  background: #eee;
}

table {
  width: 100%;
  text-align: center;
}
table td {
  border:1px solid #333;
  padding: 30px 0px;
}
table tr:first-child th {
  position:sticky;
  top:0px;
  background: #333;

}
table tr:first-child th {
  color: #fff;
  padding: 20px 0px;
}
<header><h1>Scroll Down</h1></header>
<div id="spacer"></div>
<table>
  <tr>
    <th>Column One</th>
    <th>Column Two</th>
    <th>Column Three</th>
    <th>Column Four</th>
  </tr>
  <tr>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
  </tr>
  <tr>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
  </tr>
  <tr>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
  </tr>
  <tr>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
  </tr>
  <tr>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
  </tr>
  <tr>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
  </tr>
  <tr>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
  </tr>
  <tr>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
    <td>23124</td>
  </tr>
</table>

<div id="spacer"></div>
<div id="spacer"></div>
<footer><h1>The End</h1></footer>

关于不使用固定高度和 overflow-y 的 HTML 表格 float 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42496951/

相关文章:

HTML5 视频标签不显示亚马逊视频

javascript - 表单未使用 javascript 进行验证?

javascript - 是否可以使用百分比相对定位将图钉图像定位在另一个图像上

jquery - 我需要使用 CSS 和 jQuery 使输入字段溢出 td 而不更改其位置或 tds 宽度

angularjs - 提高嵌套 ng-repeat + 指令的性能

javascript - 如何让某些 anchor 标 checkout 现而其他 anchor 标签消失?

javascript - $(document).ready 在加载 DOM 之前触发

javascript - 在 Highcharts 中格式化数据标签

css - 隐藏稍后随悬停弹出动画上升的 div 部分(仅限 CSS)

HTML 表格问题