【发布时间】:2017-12-16 05:47:41
【问题描述】:
我有一个表格,我想在打印时在某些 TR 之前强制分页,所以我四处搜索并发现 Applying "page-break-before" to a table row (tr),看起来很简单:将显示设置为 block 并像往常一样使用 page-break-before。但是,它似乎不起作用(至少在 Chrome 59、Windows 中不起作用)。例如:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
tr.break-here {
display: block;
page-break-before: always;
}
</style>
</head>
<body>
<table>
<tr class="break-here"><td colspan="2">
<tr><td colspan="2">section
<tr><td>a<td>b
<tr><td>a<td>b
<tr><td>a<td>b
<tr class="break-here"><td colspan="2">
<tr><td colspan="2">section
<tr><td>a<td>b
<tr><td>a<td>b
<tr><td>a<td>b
<tr class="break-here"><td colspan="2">
<tr><td colspan="2">section
<tr><td>a<td>b
<tr><td>a<td>b
<tr><td>a<td>b
</table>
</body>
</html>
打印时,所有这三个部分都在同一页上,但应该是三个单独的页面。
那里有人建议使用伪元素,但我尝试了但无济于事。还有一个建议是确保 TR 的 TD 包含块级元素,因此我尝试在该示例中的相关单元格中放置空 div,也没有任何更改。
还有How to apply CSS page-break to print a table with lots of rows?,我试过了:
-
This answer:没有效果:
tr.break-here { display:block; page-break-after:always; }tr.break-here { page-break-after:always; }
我在这里做错了什么?我该怎么做呢?我也有点困惑,因为链接问题的答案似乎很受欢迎,在 cmets 中没有发现任何问题。将表格拆分为三个表格不是一种选择,因为我需要列宽(自动适应复杂内容)在所有页面上都相同。
【问题讨论】:
-
这个帖子可能有你的答案:stackoverflow.com/questions/8712677/…
-
@CharlieHeflin 谢谢。实际上,我很早就发现了这一点并尝试了一些事情,但我现在更仔细地查看了它并仔细阅读了每个答案。我能够从那里想出一个似乎可行的奇怪东西,尽管我不明白。再次感谢。
标签: html css printing css-tables