Существуют ли какие-либо ограничения, которые не позволяют печатать на каждой странице в Firefox? - PullRequest
3 голосов
/ 22 марта 2010

У меня есть таблица с <thead>, <tfoot> и <tbody>. Предполагается, что теоретически печатать thead и tfoot на каждой странице, но по какой-то причине thead не печатает, если содержит вместе определенные элементы.

Это работает:

<thead>
    <tr>
        <td colspan="3">This works</td>
    <tr>
    <tr>
        <th colspan="2">column 1</th>
    <th>
        column 2
        </th>
</tr>
</thead>

Это не похоже на работу:

[править]

<table>
    <thead>
        <tr>
            <td colspan="3">
                <h2>Header</h2>
                    <address>
                        <strong>address 1</strong> <br />
                        address 2 <br />
                        address 3 <br />
                    </address>
                 <img src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Wikipedia-logo.svg/600px-Wikipedia-logo.svg.png" alt="Logo" />
                 <h2>Another header</h2>
                 <hr />
            </td>
        </tr>
        <tr>
            <th colspan="2">column 1</th>
        <th>
            column 2
            </th>
    </tr>
    </thead>
    <tfoot>
        <tr>
            <td>This is the footer</td>
            <td>Column 2</td>
            <td>Column 3</td>
        </tr>
    </tfoot>
    <tbody>
        <?php for ($i = 0; $i < 100; $i ++): ?>
        <tr>
            <td>Col 1</td>
            <td>Col 2</td>
            <td>Col 3</td>
        </tr>
        <?php endfor; ?>
    </tbody>
</table>

[/ править]

печатает:

[page 1]
    [header]
    [body]
    [footer]

[page 2,3,4,5]
    [body]
    [footer]

Есть ли причина, по которой это не работает?

Ответы [ 3 ]

6 голосов
/ 22 марта 2010

В вашей распечатке CSS добавьте это:

thead{
  display:table-header-group;/*repeat table headers on each page*/
}
tbody{
  display:table-row-group;
}
tfoot{
  display:table-footer-group;/*repeat table footers on each page*/
}

Отрегулируйте в соответствии с вашими потребностями

Обновление

После того, как вы взяли ваш последний HTML и поиграли с ним, я обнаружил, что существует ограничение по высоте для контента, который повторяется на каждой странице.

Я изменил THEAD, чтобы он содержал:

<tr><td><div style="min-height:251px;">Hello World</div></td></tr>

Если я повторю THEAD (как изменено) и TFOOT (как есть) ... Я могу использовать высоту только до 251px . Попытка подняться на большую высоту приводит к тому, что раздел THEAD не повторяется.

Я сохраню «дебаты» о том, является ли это функцией или ошибкой ... но я думаю, что если у вас есть повторяющийся заголовок, превышающий 250px, то в любом случае, вероятно, будет полезно некоторое сокращение. ; -)

1 голос
/ 12 апреля 2012

Если проблема связана с ограничением высоты страницы, используйте css-кодирование для размещения каждой метки заголовка в верхней части страницы.

Пожалуйста, обратитесь к следующей ссылке для получения дополнительной информации: Как использовать HTML для печати верхнего и нижнего колонтитула на каждой напечатанной странице документа?

0 голосов
/ 15 марта 2018

Добавление к ответу @scunliffe. Я добавил это к моему CSS, поэтому он по возможности сжимает мою теаду до такого размера и повторяет это на всех страницах в IE11 и Chrome 62

  thead {
        display: table-header-group;
       max-height:250px;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...