【问题标题】:Is it possible to tell Safari to repeat a table header on printed pages?是否可以告诉 Safari 在打印页面上重复表格标题?
【发布时间】:2010-10-02 08:13:56
【问题描述】:

是否可以在每个打印页面上重复 Safari 中的表头?

此代码在 Firefox 中有效,但在 Safari 中无效:

<table>
  <thead>
    <tr>
      <td>Header1</td>
      <td>Header2</td>
    </tr>
  </thead>

  <!-- lots of rows -->
</table>

编辑:

以下没有修复它,因此它不可能是IE的相同错误:

thead { display:table-header-group; }

【问题讨论】:

    标签: html safari html-table


    【解决方案1】:

    您可能需要考虑为您的页面的打印版本创建一个 CSS 表。如果您选择该路线,请使用“位置:固定;”。定位为“固定”的元素打印在每个打印页面上。

    棘手的部分是任何定位的元素(即位置属性不是“静态”)都会从文档流中取出。这使得其他(常规流动的)元素与固定元素的对齐变得困难。

    根据您问题中的信息,我会将 整个 表包装在一个固定元素中(或创建一个诸如 .printedTable 之类的类,并将位置属性设置为固定)。这样,表格结构将在每个打印页面上重复。

    祝你好运。 答:

    【讨论】:

    • 只有表头应该重复,而不是整个表,因为它大于单页。
    • 我将只创建一个“固定”标题元素,以便它在每个页面上重复,并将页面上边距设置为足够大的值,以防止页面/表格内容在固定标题下呈现。然后页面可以打印表格内容,并在每个 prntd 页面上重复标题
    【解决方案2】:

    回答我自己的问题:

    在谷歌搜索并没有得到正确答案后,我认为根本没有方法可以完成它。也许更高版本的 Safari 会包含它。

    【讨论】:

      【解决方案3】:

      您可以考虑定期重印thead。如果表格很长,即使在屏幕上查看,这也可能是有益的,因为标题很可能会很快滚出屏幕。但是,如果您不想在屏幕上显示它,您可以将一个类添加到重新打印的标题中,将它们隐藏在屏幕上,并仅在打印样式表中显示它们。

      【讨论】:

      • 这需要你知道桌子的断裂发生在哪里,这实际上是不可能的。 (因为如果插入新行,中断可能会移动。)
      • 好吧,如果您的行高度都相同(可能不一样),那么您可以通过一些快速测试非常准确地预测中断发生的位置。
      猜你喜欢
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      相关资源
      最近更新 更多