在可打印文档的 <thead> 上使用 CSS 添加总页数指示器?

Posted

技术标签:

【中文标题】在可打印文档的 <thead> 上使用 CSS 添加总页数指示器?【英文标题】:Add Total Pages indicator using CSS on <thead> of printable document? 【发布时间】:2013-12-13 09:33:49 【问题描述】:

我为我的网页修改了a CSS page-numbering solution。

它会自动显示“第 1 页”、“第 2 页”等。我希望它显示“第 1 页,共 5 页”、“第 2 页,共 5 页”等。

这里是my current example code: (Demo)

@media print 
  thead span.page-number:after 
    counter-increment: page;
    content: "Page " counter(page) " of ?";
  

html:(请原谅我使用表格,而不是 CSS display: table-header-group

<table>
  <thead>
    <tr>
      <td>
        <span class="page-number"></span>
      </td>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        ..............................................................
      </td>
    </tr>
  </tbody>
</table>

有什么方法可以添加总页数来代替我的?

我只对最新版本的 Firefox 或 Chrome 感兴趣。

到目前为止,我目前的解决方案是使用服务器为每个页面创建一个元素,但这样获得最佳分页效果要困难得多。 &lt;thead&gt; 的解决方案要简单得多。

【问题讨论】:

你能为网站的每个页面创建一个元素吗?因此,一个有 3 个页面(主页、关于、联系人)的站点将在每个页面上创建一个无序列表,每个页面都有一个 li。然后,您可以对这些元素使用反增量。我能想到的最好的 :) 这个列表实际上也可以成为用户方便的站点地图 :) 实际上,我正在使用的网页是可打印的公司文档。您的评论似乎与这个问题无关。对不起。 :) 目前所见,只能给出之后所有元素的总数。 这很奇怪。它适用于第 1 页,但不适用于其余页面。 jsfiddle.net/KeuwU/8jsfiddle.net/KeuwU/8/show 理论上,应该可以使用 position:fixed 元素来计算总页数。由于对齐困难,它不会是最佳的,它的效用有限。我会发布一个示例,但I haven't got it to behave right yet. 【参考方案1】:

您可以使用计数器(页面)。这是一个例子

thead span.page-number:after 
    counter-increment: page;
    content: "Page " counter(page) " of " counter(pages);

【讨论】:

对我不起作用。请注意,这是我在发布的Demo 中尝试的。【参考方案2】:

虽然不是纯粹的 CSS 答案,但使用一点 javascript 并假设每个新页面/断点将由 div/span/td 或其他 HTML 实体表示,每个实体都包含“通用类名”。你可以像这样得到总页数。

<div class="xxx"></div>
<div class="xxx"></div>
<div class="fff"></div>
<div id="footer">
<script type="application/javascript">
aaa = document.getElementsByClassName("xxx").length;
document.write(aaa);
</script>
</div>

在上面的示例中,这将产生数字 2,并在脚本插入时输出到浏览器,因为脚本会计算 xxx 作为类出现在文档上的任何元素中的次数。

【讨论】:

对不起,这是一个错误的答案,因为只涉及一个元素。该元素在每一页上重复,因为它位于&lt;thead&gt; 中,但仍然只有一个元素。 length 永远是 1

以上是关于在可打印文档的 <thead> 上使用 CSS 添加总页数指示器?的主要内容,如果未能解决你的问题,请参考以下文章

是否有任何限制使其无法在Firefox中的每个页面上打印?

生成 PDF 时第一行打印不正确

jsp页面表头锁定的问题

打印时使用 css 在每页上重复标题

让 Google Chrome 在打印页面上重复表格标题

在可序列化的 C# 类上使用没有 XmlArray 的 XmlArrayItem 属性