【问题标题】:Printed HTML table don't apply margins in all pages打印的 HTML 表格不会在所有页面中应用边距
【发布时间】:2018-06-29 12:57:49
【问题描述】:

我有这个 html:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
<style type="text/css">
    table { 
        page-break-inside: auto;
        margin-top: 50mm;
        margin-bottom: 50mm;
    }
    tr    { page-break-inside: auto; page-break-after: auto }
    thead { display: table-header-group;}
    tfoot { display: table-footer-group;}

    #header { 
        position: fixed; 
        width: 100%; 
        top: 0; 
        left: 0; 
        right: 0;
    }
    #footer { 
        position: fixed; 
        width: 100%; 
        bottom: 0; 
        left: 0;
        right: 0;
    }
</style>
</head>
<body>

    <div id="header"> 
        <p>Personalised header</p> 
    </div>
    <div id="footer"> 
        <p>Personalised footer</p> 
    </div> 

    <table>
        <thead>
            <tr><th>heading</th></tr>
        </thead>
        <tfoot>
            <tr><td>notes</td></tr>
        </tfoot>
        <tbody>
        <tr>
            <td>x</td>
        </tr>
        <tr>
            <td>x</td>
        </tr>
        <tr>
            <td>x</td>
        </tr>

        <tr>
            <td>x</td>
        </tr>
        <!-- Mor than 500 similar tr-->
        <tr>
            <td>x</td>
        </tr>
    </tbody>
    </table>
</body>
</html>

这是一张大桌子。 表格有上边距和下边距,但只在第一个打印页应用 margin-top,在最后一个打印页应用 margin-bottom:

我该如何解决这个问题?我想要页面的页眉和页脚的固定位置,但我希望该页边距适用于所有打印页面的表格。

【问题讨论】:

    标签: html css page-break printing-web-page page-break-inside


    【解决方案1】:

    您可以使用@page 选择器在页面周围添加间距,如下所示:

    @page { margin: 50px }
    

    【讨论】:

    • 其实可以,但是我把问题简化了太多,去掉了一个重要的部分。我想要每个打印页面上的页眉和页脚。我已经修改了问题的陈述。对不起。我投你赞成票,因为你的答案是正确的。
    • 谢谢,这不是我想要的,但我想我可以适应它
    猜你喜欢
    • 2010-12-05
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 2014-05-11
    • 2016-05-13
    • 1970-01-01
    • 2011-06-28
    • 2011-01-06
    相关资源
    最近更新 更多