我正在从Mysql DB生成一个php报告。我在此报告中显示的所有内容都是从数据库中提取的。
我在打印预览中遇到的问题
table-header-group;
作为表5,表1和表1的标题。表3,它在浏览器中不起作用。我需要的解决方案
1.如果table3行增加,如果表4触及下面的行(div border),它应该完全移动到打印预览中的下一页。
2.如果table4转到下一页,它应该低于table1& 2.
需要帮助!
我的代码:
@media print {
#container
{
border:1px solid;
}
table
{
border-left: 1px solid #ccc;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
border-right: 1px solid #ccc;
border-spacing:0;
border-collapse: collapse;
}
table td
{
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
padding: 1mm;
}
table.heading
{
height:50mm;
}
#table_table3, #table_table4
{
font-size: 9pt;
line-height: 7px;font-size: 9pt;
page-break-before: always;
}
#table_table3 table , #table_table4 table
{
width:100%;
border-left: 1px solid #ccc;
border-top: 1px solid #ccc;
font-size: 9pt
border-spacing: 0;
border-collapse: collapse;
page-break-before: always;
//margin-top:5mm;
}
#table_table3 table td , #table_table4 table td
{
text-align:center;
font-size:9pt;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
padding:1mm 0;
page-break-before: always;
}
}
答案 0 :(得分:0)
您需要在CSS中添加一些@media print
规则,以便获得适合打印机的风格。
例如:
防止在页面底部打印标题
h2, h3 {
page-break-after: avoid;
}
阻止列表拆分或图像内拆分
ul, img {
page-break-inside: avoid;
}
在表格和文章
之前始终分页table, article {
page-break-before: always;
}
特定表格之前的分页符:
table#table-4 {
page-break-before: always;
}
<table id="table-4">...</table>
在某些浏览器中,这有效:
table { page-break-inside:auto }
tr { page-break-inside:avoid; page-break-after:auto }
thead { display:table-header-group }
tfoot { display:table-footer-group }
参考:
警告。严重的浏览器不兼容性。
似乎大多数浏览器都不关心page-break- *规则..
看起来,Opera是唯一一个支持这个......