Повторять заголовки таблицы в режиме печати

Возможно ли в CSS с помощью свойства внутри @page сказать, что заголовки таблицы (th) должны повторяться на каждой странице, если таблица распространяется на несколько страниц?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
112
0
149 218
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Для этого нужен элемент THEAD. Официальные документы здесь.

Я не думал об этом, но на практике это не работает.

avernet 08.11.2008 05:03

Я успешно использовал это в Firefox.

jishi 08.11.2008 05:17

Как обычно, для этого требуется исправный браузер - см. Комментарий jishi.

Peter Rowell 08.11.2008 05:45

Эти комментарии довольно старые. По состоянию на 13.03.13 ленивая выборочная проверка показывает, что он работает в последнем IE10 и даже в почтенном IE8 ...

Nathan 14.03.2013 05:07

..но не Chrome. (см. следующий ответ). Глядя на систему отслеживания проблем, похоже, что наконец-то появилась какая-то тяга к этому.

Daniel 17.06.2016 18:25

Наконец, Chrome поддерживает повторяющиеся заголовки таблиц для печатных СМИ. Это включено, если у th есть break-inside:avoid, и может быть отключено с помощью break:inside: auto. См. codereview.chromium.org/2021703002/#ps20001

Alex Osborn 20.10.2016 08:28
для получения дополнительных объяснений и пройдите. здесь
Biskrem Muhammad 17.07.2018 01:57

@tvanfosson Он работает нормально, но есть ли ограничение по высоте заголовка, для которого должен работать повторяющийся заголовок? В моем случае он перестает работать, когда высота заголовка больше.

Rushabh Shah 13.02.2019 16:23

Работает как шарм для рендеринга PDF на стороне сервера с использованием кукловода (который открывает хромированную страницу без заголовка и использует функцию печати в формате PDF из хрома).

brickBreaker 08.03.2019 00:15

содержание перекрывается с повторением th

Sashi yadav 14.05.2019 13:05

Некоторые браузеры повторяют элемент thead на каждой странице, как и предполагалось. Другим нужна помощь: добавьте это в свой CSS:

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

Opera 7.5 и IE 5 не будут повторять заголовки, что бы вы ни пытались.

(source)

Также нет "Летающей тарелки", которую я использую для создания PDF-файла. Я также задам этот вопрос в списке рассылки «Летающая тарелка», чтобы узнать, есть ли другой способ сделать это.

avernet 08.11.2008 05:04

Последние версии Chrome и Safari в настоящее время этого не делают. См. В моем ответе ссылки на их средства отслеживания проблем.

Nick Knowlson 15.03.2012 23:18

мать божья, в то время, когда это писалось, IE5 еще что-то было?

igorsantos07 06.10.2016 02:51

Я только что попробовал пример thead в моем CSS (совместимом с IE7), и он действительно повторяет заголовки, когда я делаю предварительный просмотр печати. Спасибо. Но я вижу реплицированную строку вверху следующей страницы. Почему?

Andrew Truckle 29.03.2017 20:23

Летающая тарелка xhtmlrenderer повторяет THEAD на каждой странице вывода PDF, если вы добавите в свой CSS следующее:

        table {
            -fs-table-paginate: paginate;
        }

(Работает, по крайней мере, с выпуска R8.)

Это как раз то, что я искал. Спасибо!

Alex 05.07.2012 16:52

Потрясающий! (ссылка мертвая: /)

Cyril N. 14.12.2012 15:07

Потрясающий! Спасибо!

Frison Alexander 30.05.2018 15:17

Прежде чем реализовывать это решение, важно знать, что Webkit в настоящее время этого не делает.

Вот соответствующая проблема в системе отслеживания проблем Chrome: http://code.google.com/p/chromium/issues/detail?id=24826

И в системе отслеживания проблем Webkit: https://bugs.webkit.org/show_bug.cgi?id=17205

Пометьте его в системе отслеживания проблем Chrome, если вы хотите показать, что это важно для вас (я так и сделал).

Спасибо за это - у меня бы сильно заболела голова, если бы я не прокрутил страницу вниз.

Seiyria 08.07.2014 00:18

И почти 4 года спустя (и 8 лет с тех пор, как была подана жалоба на WebKit), это все еще актуально!

jcaron 26.02.2016 15:53

Браузеры Chrome и Opera не поддерживают thead {display: table-header-group;}, но остальные поддерживают его должным образом.

как этого добиться в хроме?

Null Pointer 10.07.2018 15:02

как распечатать HTML-таблицу. Верхний и нижний колонтитулы на каждой странице

Также работает в браузерах 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>

Просто работать на настольном Chrome.Chrome/Safari на iphone не работает!

Devin Gong 30.07.2019 11:40

Другие вопросы по теме