如何指定在分页后重新出现的元素?

时间:2014-04-24 19:07:52

标签: css html5 css3

背景:我有一个PHP脚本,可生成一个很长的HTML / CSS文档,可以使用WkHtmlToPdf转换为PDF。

在文档中的某一点,我们进入一个动态区域,其中包含可变数量的条目,其中一些条目包括大图像。我想在每个页面上重绘一个标题。

澄清点:这是网页部分打印视图中的重复标题,而不仅仅是整个网页的标题。

想要这样做是通过CSS实现的。例如(伪代码):

    #some_region:pagebreak {
      background-color: #fcc;
      border-color: #000;
      border-style: solid;
      border-width: 0 0 1px 0;
      content: "Our Header Here";
    }

当然,这个虚构的CSS3选择器不存在!

在特定容器中的任何分页符之后,是否有任何可用于显示元素的聪明的CSS黑客?

举例说明:https://scott.arciszewski.me/public/23277702.php

3 个答案:

答案 0 :(得分:9)

position: fixed;中的@media print标题怎么样? 这将强制每个打印页面上的标题。 类似的东西:

    @media screen {
        .print-header {
            display: none;
        }
    }

    @media print {
        .print-header {
            position: fixed;
            ...
        }
    }

答案 1 :(得分:0)

你能用wkhtmltopdf的--header和--footer参数实现吗?

有一个帮助部分
$ wkhtmltopdf -H

修改

从评论部分可以看出,这个问题的答案并不完全,但对于搜索相关问题的用户来说可能仍然有价值:

此博文显示了如何使用wkhtmltopdf在任意页面上呈现页眉或页脚:http://biostall.com/wkhtmltopdf-add-header-footer-to-only-first-last-page

答案 2 :(得分:0)

如果我理解正确,如果每个"容器"在分页符之后可以给出一个类名,你可以简单地使用伪元素:

示例 JS Fiddle

.container {
  position: relative;
  background: #eee;
  padding: 35px 5px 5px;
  margin-bottom: 10px;
}
.container:before {
  position: absolute;
  top:0;
  left:0;
  padding: 5px;
  background: #aaa;
  content:"Here's the header content!";
}