header and footer in each page in print mode with css

前端 未结 4 1697
北海茫月
北海茫月 2021-02-01 19:28

I have a web application and it has a report that might exceed one page and I would like to print a header and footer in every page. i find and try this: Repeating a report head

相关标签:
4条回答
  • 2021-02-01 20:05

    I found a solution that worked for me and only one that works without problem.

    In html

    <table>
            <thead><tr><td>
                <div class="header-space">&nbsp;</div>
            </td></tr></thead>
            <tbody><tr><td>
                <div id="pageHost" class="content"></div>
            </td></tr></tbody>
            <tfoot><tr><td>
                <div class="footer-space">&nbsp;</div>
            </td></tr></tfoot>
        </table>
        <header id="pageHeader">
        </header>
        <footer id="pageFooter">
            Custom Footer
            <div class="numberOfPages">
    
            </div>
        </footer>
    

    in css

                header, .header-space,
                footer, .footer-space {
                    height: 100px;
                    font-weight: bold;
                    width: 100%;
                    padding: 10pt;
                    margin: 10pt 0;
                }
    
                header {
                    position: fixed;
                    top: 0;
                    border-bottom: 1px solid black;
                }
    
                footer {
                    position: fixed;
                    bottom: 0;
                    border-top: 1px solid black;
                }
    
    0 讨论(0)
  • 2021-02-01 20:11

    There is currently a bug in the webkit engine (https://bugs.webkit.org/show_bug.cgi?id=100075) that results in totaly misplaced footers.

    0 讨论(0)
  • 2021-02-01 20:22

    You can set a position: fixed; header and footers so that it will repeat on each page

    For Example

    <header class="onlyprint"><!--Content Goes Here--></header>
    <footer class="onlyprint"><!--Content Goes Here--></footer>
    
    @media screen {
        header.onlyprint, footer.onlyprint{
            display: none; /* Hide from screen */
        }
    }
    
    @media print {
        header.onlyprint {
            position: fixed; /* Display only on print page (each) */
            top: 0; /* Because it's header */
        }
        footer.onlyprint {
            position: fixed;
            bottom: 0; /* Because it's footer */
        }
    }
    
    0 讨论(0)
  • 2021-02-01 20:27

    I really appreciate your reply but i have used this solution(position : fixed) before and the content of the page would be masked by the header. so i have to use "@page" which only works with "Margin" property and "Content" does not work or in other words i cannot reach the result i want.

    0 讨论(0)
提交回复
热议问题