css - 使表格具有用于垂直滚动的固定标题和用于水平滚动的滚动标题的最低要求是什么?

标签 css html

使表格具有用于垂直滚动的固定标题和用于水平滚动的滚动标题的最低要求是什么?

我正在尝试使用基本的 HTML/CSS 表格完成以下操作:

  • 表格包含动态生成的内容,因此单元格的大小应适合内容(不是固定宽度的单元格)。

  • 表格的大小应能容纳单元格。该表将比其容器宽,而且很可能比屏幕宽。它不应溢出其容器,但可以水平滚动。

  • 表格将位于具有绝对位置 0,0,0,0 的容器内,以使其大小与其父容器相同(position:relative)。

  • 当内容太多无法水平放置时,应该会出现一个水平滚动条,它会随着表头左右滚动表格。

  • 当行数过多时,滚动条应垂直出现,但滚动时,标题行不应垂直滚动,应保持可见。

有一些 Jquery 插件可以为表格添加大量功能,包括这种类型的滚动。不幸的是,我不想要/不需要一个完整的表格到网格插件,我只需要了解实现垂直滚动的固定标题所需的基本CSS规则用于水平滚动的滚动标题

这是一个来自插件演示页面的示例:http://www.tablefixedheader.com/fullpagedemo/ .此处的滚动按我想要的方式工作,但它似乎使用固定宽度,我不知道是否需要这样做,或者 javascript 是否正在计算这些宽度等。

具体来说,我正在寻找的是能够解释必要的(且仅是必要的)标记和 css 规则的人,这些标记和 css 规则是按照上述方式制作普通旧表格滚动所需的。我想了解规则如何以及为何起作用。

一个理想的答案是几行 HTML 显示哪些东西必须包装在 div 等中,几行 CSS 仅显示使其工作的关键规则,然后解释这些关键规则是什么努力使之成为可能。

我已经尝试让该功能正常工作 3 天了,但只能让某些部分正常工作,但不能同时全部正常工作。

最佳答案

本质上,滚动的不是表格,而是包含表格的 div。让我们看一些示例代码:

<div style="height:200px; overflow-y: scroll;">
  <table>
   ....
  </table>
</div>

一旦表格达到限制,即 200 像素范围的 div 中无法容纳太多数据,它将自动启动带有元素 overflow-y 的滚动条。现在,要获得将用于水平和垂直滚动的滚动条,您可以从 overflow-y: scroll 切换到 overflow: scroll;。我从以下堆栈中引用了这个 question .

最后一部分,创建一个固定的header,我们可以引用下面的JsFiddle:

DEMO

这又是从不同的堆栈引用的question .关键部分是使用两个表来表示一个大表。这是将第一个表放在第二个表的顶部,然后启用 table-layout: fixed 以将所有内容放在一起。

真正的问题出现在你试图让你的表格水平滚动时,这可能需要 JQuery 或一些 JS 衍生工具,所以这里有一个很好的堆栈 question为您指明正确的方向。

我想介绍的最后一件事是表和 divs/uls/lis 之间的优化差异(我们可以将其称为 DUL 以使其简短)。为了更好地理解我的意思,请看一下最后的堆栈 question .这可能适合您,也可能不适合您,这实际上取决于您对更改布局的适应程度,以及您是否觉得需要尝试优化结果。您可能根本不需要它,但同样需要考虑一些事情。

关于css - 使表格具有用于垂直滚动的固定标题和用于水平滚动的滚动标题的最低要求是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20963554/

相关文章:

python - Plotly Dash API 文档

ipad - 最小宽度 = 481 为什么

html - 宽度超过浏览器窗口

javascript - 无法在 mvc4 中使用 onclick 从 anchor 标记获取调用

html - 嵌套的 Divs 退格问题

javascript - 如何使用例如正则表达式从属性获取文本?

html - z-index 和 overflow 根本不起作用

html - 表格右上角的 CSS 位置图标

javascript - clearRect 不清除

javascript - 如何使 iframe 中的内容响应?