在多页文档的每个页面上打印CSS标题

时间:2016-12-31 06:59:56

标签: print-css

想要在“打印文档”中的每个页面上添加标题。

使用page-break-inside: avoid,好像内容的某些部分将转到下一页,它应该完全转到下一页。

当内容本身占用多个页面时,会出现问题。 表结构是

<table class="super-table">
    <thead class="pageheader">
        <tr>
            <td>
                <?php echo $header; ?>
            </td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <?php echo $content[0]; ?>
            </td>
        </tr>
        <tr>
            <td>
                <?php echo $content[1]; ?>
            </td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td>
                <?php echo $footer; ?>
            </td>
        </tr>
    </tfoot>
</table>

CSS

@media print {
    thead { 
        display: table-header-group; position: running(pageheader);
    }
    tr, td {
        page-break-inside: avoid;
    }
    @page {
        size: letter portrait;
        @top-left { content: element(pageheader); }
    }
    .super-table {
        page-break-after: always;
    }
}

当内容占用超过一页时,标题会重叠。我是否可以仅在每个页面中为内容设置边距而不是标题?将margin-top添加到@page也会向下移动标题。

IMAGE: <thead> overlaps if content occupies more than one page

1 个答案:

答案 0 :(得分:0)

它与PHP无关,但与CSS无关。 PHP无法通过网站设计进行操作,只是输出内容。

您可能正在寻找:Repeat table headers in print mode