Ulangi header tabel dalam mode cetak


101

Apakah mungkin dalam CSS menggunakan properti di dalam @page untuk mengatakan bahwa header tabel (th) harus diulangi pada setiap halaman jika tabel tersebar di beberapa halaman?

Jawaban:


109

Untuk itulah elemen THEAD . Dokumen resmi di sini .


1
Saya belum memikirkannya, tetapi tampaknya tidak berhasil dalam praktiknya.
avernet

1
Saya telah berhasil menggunakannya di Firefox.
jishi

5
Seperti biasa, ini membutuhkan browser yang tidak rusak - lihat komentar jishi.
Peter Rowell

9
Komentar ini sudah cukup lama. Mulai 13/03/13 pemeriksaan tempat malas menunjukkan bahwa ia berfungsi di IE10 terbaru, dan bahkan IE8 yang terhormat ...
Nathan

8
Chrome akhirnya mendukung header tabel berulang untuk media cetak. Ini diaktifkan jika th memiliki break-inside:avoid, dan dapat dinonaktifkan dengan break:inside: auto. Lihat codereview.chromium.org/2021703002/#ps20001
Alex Osborn

69

Beberapa browser mengulangi theadelemen pada setiap halaman, sebagaimana mestinya. Orang lain membutuhkan bantuan: Tambahkan ini ke CSS Anda:

thead {display: table-header-group;}
tfoot {display: table-header-group;}

Opera 7.5 dan IE 5 tidak akan mengulang header apapun yang Anda coba.

( sumber )


Begitu pula dengan Piring Terbang, yang saya gunakan untuk menghasilkan PDF. Saya juga akan menanyakan pertanyaan ini di milis Piring Terbang untuk mengetahui apakah ada cara lain untuk melakukannya.
avernet

7
Versi terbaru Chrome dan Safari saat ini juga tidak melakukan ini. Lihat jawaban saya untuk tautan ke pelacak masalah mereka.
Nick Knowlson

1
bunda tuhan, pada saat ini ditulis IE5 masih ada?
igorsantos07

Saya baru saja mencoba theadcontoh di CSS saya (kompatibel dengan IE7) dan itu mengulangi judul ketika saya melakukan pratinjau cetak. Terima kasih. Tapi, saya melihat untuk mendapatkan baris yang direplikasi di bagian atas halaman berikutnya. Mengapa?
Andrew Truckle

45

Sebelum Anda menerapkan solusi ini, penting untuk mengetahui bahwa Webkit saat ini tidak melakukan ini.

Berikut masalah yang relevan di pelacak masalah Chrome: http://code.google.com/p/chromium/issues/detail?id=24826

Dan di pelacak masalah Webkit: https://bugs.webkit.org/show_bug.cgi?id=17205

Beri bintang di pelacak masalah Chrome jika Anda ingin menunjukkan bahwa ini penting bagi Anda (saya lakukan).


1
Terima kasih untuk ini - ini akan membuat saya sakit kepala hebat jika saya tidak menggulir ke bawah.
Seiyria

4
Dan hampir 4 tahun kemudian (dan 8 tahun sejak masalah WebKit diajukan), hal ini masih terjadi!
jcaron


6

Browser Chrome dan Opera tidak mendukung thead {display: table-header-group;}tetapi yang lainnya mendukung dengan baik ..


bagaimana cara mencapai ini di chrome?
Null Pointer

4

bagaimana cara mencetak tabel HTML. Header dan footer di setiap halaman

Juga Bekerja di Browser Webkit

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function PrintPage() {
            document.getElementById('print').style.display = 'none';
            window.resizeTo(960, 600);
            document.URL = "";
            window.location.href = "";
            window.print();
        }

    </script>
    <style type="text/css" media="print">
        @page
        {
            size: auto; /* auto is the initial value */
            margin: 2mm 4mm 0mm 0mm; /* this affects the margin in the printer settings */
        }
        thead
        {
            display: table-header-group;
        }
        tfoot
        {
            display: table-footer-group;
        }
    </style>
    <style type="text/css" media="screen">
        thead
        {
            display: block;
        }
        tfoot
        {
            display: block;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table style="width: 500px; margin: 0 auto;">
            <thead>
                <tr>
                    <td>
                        header comes here for each page
                    </td>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>
                        1
                    </td>
                </tr>
                <tr>
                    <td>
                        2
                    </td>
                </tr>
                <tr>
                    <td>
                        3
                    </td>
                </tr>
                <tr>
                    <td>
                        4
                    </td>
                </tr>
                <tr>
                    <td>
                        5
                    </td>
                </tr>
                <tr>
                    <td>
                        6
                    </td>
                </tr>
                <tr>
                    <td>
                        7
                    </td>
                </tr>
                <tr>
                    <td>
                        8
                    </td>
                </tr>
                <tr>
                    <td>
                        9
                    </td>
                </tr>
                <tr>
                    <td>
                        10
                    </td>
                </tr>
                <tr>
                    <td>
                        11
                    </td>
                </tr>
                <tr>
                    <td>
                        12
                    </td>
                </tr>
                <tr>
                    <td>
                        13
                    </td>
                </tr>
                <tr>
                    <td>
                        14
                    </td>
                </tr>
                <tr>
                    <td>
                        15
                    </td>
                </tr>
                <tr>
                    <td>
                        16
                    </td>
                </tr>
                <tr>
                    <td>
                        17
                    </td>
                </tr>
                <tr>
                    <td>
                        18
                    </td>
                </tr>
                <tr>
                    <td>
                        19
                    </td>
                </tr>
                <tr>
                    <td>
                        20
                    </td>
                </tr>
                <tr>
                    <td>
                        21
                    </td>
                </tr>
                <tr>
                    <td>
                        22
                    </td>
                </tr>
                <tr>
                    <td>
                        23
                    </td>
                </tr>
                <tr>
                    <td>
                        24
                    </td>
                </tr>
                <tr>
                    <td>
                        25
                    </td>
                </tr>
                <tr>
                    <td>
                        26
                    </td>
                </tr>
                <tr>
                    <td>
                        27
                    </td>
                </tr>
                <tr>
                    <td>
                        28
                    </td>
                </tr>
                <tr>
                    <td>
                        29
                    </td>
                </tr>
                <tr>
                    <td>
                        30
                    </td>
                </tr>
                <tr>
                    <td>
                        31
                    </td>
                </tr>
                <tr>
                    <td>
                        32
                    </td>
                </tr>
                <tr>
                    <td>
                        33
                    </td>
                </tr>
                <tr>
                    <td>
                        34
                    </td>
                </tr>
                <tr>
                    <td>
                        35
                    </td>
                </tr>
                <tr>
                    <td>
                        36
                    </td>
                </tr>
                <tr>
                    <td>
                        37
                    </td>
                </tr>
                <tr>
                    <td>
                        38
                    </td>
                </tr>
                <tr>
                    <td>
                        39
                    </td>
                </tr>
                <tr>
                    <td>
                        40
                    </td>
                </tr>
                <tr>
                    <td>
                        41
                    </td>
                </tr>
                <tr>
                    <td>
                        42
                    </td>
                </tr>
                <tr>
                    <td>
                        43
                    </td>
                </tr>
                <tr>
                    <td>
                        44
                    </td>
                </tr>
                <tr>
                    <td>
                        45
                    </td>
                </tr>
                <tr>
                    <td>
                        46
                    </td>
                </tr>
                <tr>
                    <td>
                        47
                    </td>
                </tr>
                <tr>
                    <td>
                        48
                    </td>
                </tr>
                <tr>
                    <td>
                        49
                    </td>
                </tr>
                <tr>
                    <td>
                        50
                    </td>
                </tr>
                <tr>
                    <td>
                        51
                    </td>
                </tr>
                <tr>
                    <td>
                        52
                    </td>
                </tr>
                <tr>
                    <td>
                        53
                    </td>
                </tr>
                <tr>
                    <td>
                        54
                    </td>
                </tr>
                <tr>
                    <td>
                        55
                    </td>
                </tr>
            </tbody>
            <tfoot>
                <tr>
                    <td>
                        footer comes here for each page
                    </td>
                </tr>
            </tfoot>
        </table>
    </div>
    <br clear="all" />
    <input type="button" id="print" name="print" value="Print" onclick="javascript:PrintPage();"
        class="button" />
    </form>
</body>
</html>

Cukup bekerja di chrome desktop. Chrome/Safari di iphone tidak berfungsi!
Devin Gong
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.