【问题标题】:What's the best way to have a table with sticky header?拥有带有粘性标题的表格的最佳方法是什么?
【发布时间】:2015-11-06 19:57:18
【问题描述】:

我目前正在做的是 2 个表格,一个用于标题,一个用于数据,结合 table-layout:fixed 和每列的固定宽度。

我不喜欢这种解决方案,因为我必须不断调整宽度,而且当表格布局不固定时,它们看起来不像自动调整的那样好。

我还考虑了一个 JS 解决方案,其中布局数据表,然后 JS 选取每个列宽并将其应用于标题表。这样做的好处是流动的td 宽度由内容决定。问题是表格内容可以动态变化,JS 脚本需要知道这一点,以便它可以重新计算宽度...... ew。

有没有更好的方法?

【问题讨论】:

标签: html css html-table sticky


【解决方案1】:

最好使用一些插件,例如jQuery Plugin for Fix Header Table

或者如果你想要纯 CSS 并想知道它是如何工作的。你可以试试下面的小提琴https://jsfiddle.net/dPixie/byB9d/3/light/

如果 div 位于 TH 内,则全部显示内容

th {
  height: 0;
  line-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  color: transparent;
  border: none;
  white-space: nowrap;
}
th div{
  position: absolute;
  background: transparent;
  color: #fff;
  padding: 9px 25px;
  top: 0;
  margin-left: -25px;
  line-height: normal;
  border-left: 1px solid #800;
}
th:first-child div{
  border: none;
}

【讨论】:

  • 谢谢迪帕克。聪明的主意。它可能不适用于比内容更宽的标题,但我可以使用它。
  • 如何使用一个被认为“更好”的 jQuery 插件?
  • @vsync 使用成熟的 3rd 方免费组件很好,因为人们使用了一年多来修复他们发现的问题并更新库。我可以/建议使用现有的可用 lib/addon,而不是编写自己的代码,这可能会在生产中遇到一些问题。为了快速开发,最好重新利用可用的组件,而不是浪费时间做同样的事情。
猜你喜欢
  • 2022-03-04
  • 2020-01-30
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 2015-08-04
  • 1970-01-01
  • 2016-12-01
相关资源
最近更新 更多