Сверху моей головы:
document.write
необходимо использовать в загрузке страницы или загрузке тела. Поэтому, если вы хотите использовать скрипт в любое другое время для обновления содержимого вашей страницы, document.write практически бесполезен. document.write
будет обновлять HTML-страницы, а не XHTML / XML. IE, похоже, довольно прощает этот факт, но других браузеров не будет. Вы должны добавить этот стиль, чтобы правильно разрывать страницу:
<html>
<head>
<style>
@media print
{
body {
padding-bottom: 10mm;
}
table {page-break-after:auto;border-collapse: collapse;}
tr { page-break-inside:avoid; page-break-after:auto }
td { page-break-inside:avoid; page-break-after:auto }
div { page-break-inside:avoid; }
thead { display:table-header-group }
tfoot { display:table-footer-group }
}
</style>
</head>
<body>
<table>
<tbody>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<tr >
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
<td class="border" style="border: solid 1px;"><div style="height: 150px;">text</div></td>
</tr>
<!-- more rows here -->
</tbody>
</table>
</body>
</html>
Проблема с вашим стилем border-collapse: collapse
, вместо этого используйте cellspacing="0" cellpadding="0"
, чтобы ваша таблица выглядела как
<table cellspacing="0" cellpadding="0">
---
</table>
, также измените стиль некоторых tds
, чтобы избежать двойного окаймления
[ 1110] Preview https://2ooon0o550.codesandbox.io/