Пользователи моего веб-сайта должны иметь возможность печатать веб-страницы, состоящие из содержимого на первой печатной странице, а затем таблицы на второй странице. Урезанная версия (jsFiddle at https://jsfiddle.net/jaydeedub/n3qhvtvx/25/):
HTML:
<body>
<button class="button" onclick="window.print()">Print Me</button>
<div class="page1">
This is the page 1 content. Blah, blah, blah.
</div>
<table class="table">
<thead>
<tr>
<td>Page 2 table header prints twice</td>
</tr>
</thead>
<tbody>
<tr>
<td>Page 2 table body</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Page 2 table footer</td>
</tr>
</tfoot>
</table>
</body>
CSS
@media print {
div.page1 {
page-break-after: always;
}
}
.table {
border-collapse: collapse;
margin: 16px;
}
.table>thead>tr>td,
.table>tbody>tr>td,
.table>tfoot>tr>td {
border: 1px solid black;
}
.button {
width: 6em;
height: 2em;
margin: 10px 0px;
}
Отпечаток, как и ожидалось, в Chrome 52 на Chrome OS, но в Chrome 53 в Windows 7 Home и Chrome 53 в Chrome OS заголовок таблицы дважды печатается на второй странице: один раз сам без верхнего поля и один раз с верхний край, за которым следует остальная часть таблицы. Он обычно печатался в Windows в более ранней версии Chrome, но я не знаю, был ли это Chrome 52 (определенно в последних версиях). Он также печатает как ожидалось в Firefox.
Я нашел одно обходное решение, которое заключается в том, чтобы поместить пустой элемент "thead" перед реальным элементом thead, но это решение очень неприятно и делает меня неудобным.
Существует ли более надежное обходное решение, которое, вероятно, не будет иметь побочных эффектов в браузерах?