【发布时间】:2016-07-30 22:15:08
【问题描述】:
我与page-break-inside:auto, page-break-inside:avoid, page-break-after:auto, margin-top and margin-bottom 和其他人玩了很长时间,但仍然找不到解决方案如何在我的长 HTML 表格中打破行,这意味着要打印。
页面在打印模式下(或在 Chrome 中打印之前的预览窗口)看起来像左侧屏幕截图:
我需要做的就是打破每一页底部的每一行,这将分为两页(及其内容也是如此......)
这是我页面的一段代码:
...
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
td { padding-left: 15px; padding-right: 15px; }
@media print{
.netisk{
visibility: hidden;
}
}
@page{
size: 21cm 29.7cm;
margin: 0px;
}
body {
margin-left: 1cm;
margin-right: 1cm;
}
</style>
...
...
...
<?php
echo "<table cellspacing='0'><thead><tr><th> ID </th><th> Název projektu </th><th> Kategorie </th><th> Autor </th><th> Třída </th><th> Rok </th><th> Vedoucí práce </th></tr></thead><tbody>";
if (mysql_num_rows($result) > 0) {
while($row = mysql_fetch_assoc($result)) {
echo "<tr><td>" . $row["id"]. "</td><td>" . $row["nazev_projektu"]. "</td><td>" . $row["kategorie"]. "</td><td>" . $row["autor"]. "</td><td>" . $row["trida"]. "</td><td>" . $row["rok"]. "</td><td>" . $row["vedouci_prace"]. "</td></tr>";
}
}
echo "</tbody></table>";
mysql_close($mysql_conn);
?>
...
...
页面在这里:http://student.spsbv.cz/krolop.el12a/mproj/components/tisk.php
如您所见,存在一个问题,即我的表会根据我的 MySQL 数据库中的数据数量动态“增长”,因此很难分配应该破坏表的特定行。
如何解决?
编辑:给定的解决方案 (How to apply CSS page-break to print a table with lots of rows?) 没有解决我的问题,有什么不同的方法(使用 HTML 和 CSS)吗?
【问题讨论】:
-
Aziz:也许我问过类似的问题,但我浏览了许多解决方案,它们使用相同的 CSS 选择器,但没有成功。
标签: html css printing html-table break