2013-05-17 55 views
0

我有一个包含DIV的页面。这个div是其他元素的容器,可以在打印时增加高度大于页面的高度。DIV未打印分页

我认为它会分页没有任何问题。我看到的问题是DIV的高度增加到第1页的整个高度,那就是了。打印输出的第1页以外不再显示。

经过一番试验,我发现display: inline似乎解决了这个问题。我不懂为什么。

如果这确实是解决问题的办法,有人可以解释为什么这解决了我的问题。

我想了解这项工作的原因。

+0

只是想知道 - 我测试过打印一个长格与内容以及 - 显示属性是否真的改变了那么多?我的意思是,在我的网页上,内容被自动放置在多个页面上,而我不必修复任何定位...... – Tyblitz

+0

它可能与显示属性组合在一起。正如我所说,我确实希望它是自动的。另外 - 任何想法如何打印水平和垂直分页的大型表格? :) – psynnott

回答

1

@你的评论:你在正确的时间提出正确的问题,因为我目前的工作完全一样! :)我会分享一些截图来显示结果;我认为打印一个非常大的表格需要一个非常复杂的解决方案,但是对于我的表格来说它工作正常(我称之为“中等”)。

在我的应用程序中有一个容器div中的表格,其中的块元素的显示设置为表格单元格(使用浮动和边距时列宽不一致)。

1.页面在正常的WebView

The page in normal webview

2.把打印媒体查询的样式表,打印后的页面:(不介意暗格,这是一个面具我还没有删除)正如你可以看到表格经过多个页面,并水平缩放以适合。

@media print { 
#data {overflow: visible; height: auto;} /* the container div */ 
.bld {display: block} /* the blocks you see in the table, web display: table-cell */ 
/* I tested all table{ display: inline, inline-table, and table } and they 
all worked for me, as displayed in the screenshot below */ 
} 

The page in print

打印到一定DIV(也许行),我将把你这个职位,因为我还没有尝试过自己还,但可能是3.To集pagebreaks值得阅读: Make divs on a page print on seperate pages when printed

另一个黑客将某个位置,一个div X行的第一列里面,然后将这个div的CSS page-break-after: always;迫使那些行分页符。我在tr,td和表格上测试了一些分页内容,但它不起作用(因为tr的样式与其他HTML元素有所不同)

4.作为不同显示值之间差异的参考: https://stackoverflow.com/questions/15130285/css-differences-between-style-display-inline-inline-table-and-table

如果您发现有关此主题的其他内容有趣,请在评论中张贴@,谢谢!

+0

哇,非常感谢 - 那里有很多信息需要我花时间去消化和阅读链接的帖子。再次感谢 – psynnott