我有一个可以在Chrome,Safari和IE上正确打印的网页,但在Firefox上有以下问题:
它只打印第一页上的标题。其余部分是空白的。 实际内容仅在第2页显示。
谷歌搜索了一下我发现“浮动:左”风格造成了它。 如果我删除“浮动:左”它打印好,但它看起来不像它应该在打印和屏幕上显示彼此相邻的2列。
这个问题有解决方法吗?
感谢。
答案 0 :(得分:9)
嗨我有类似的问题,但是当我打印时,我在END处有一个额外的空白页。 IE会做同样的事情,所以我认为我有CSS问题。
长话短说,我发现如果你有一个段落作为body元素中的第一个元素,并且段落在CSS中设置了'margin'属性,那么它会在末尾打印一个空白页面。有趣的是,如果只有一页,它只打印一个空白页。如果我从样式中删除了边距或在段落之前添加了一个元素,则它不会打印额外的空白页面。
JAB
答案 1 :(得分:2)
我发现将HTML中的页面高度设置为比打印机页面高度中指示的小一点,可以防止出现空白页。
答案 2 :(得分:1)
尝试使用打印样式表:
<link rel="stylesheet" href="print.css" type="text/css" media="print" />
在此样式表中,您将能够删除float:left
以进行打印,而不会影响浏览器中的布局。
的Al
答案 3 :(得分:1)
是否有确切的问题 - 标题后跟空白页或半页。如果您的布局严重依赖于表格,则可以将vertical-align
规则设置为middle
或baseline
以外的任何内容。
将规则设置为中间,如图所示修复
@media print {
table tr td {
vertical-align: middle;
}
}
答案 4 :(得分:0)
我的表格中有内容,可以解决此问题。
tr { page-break-inside: avoid; }
答案 5 :(得分:0)
经过多次尝试,我发现如果您将 page-break-after: always;
应用到最后一个元素,Firefox 会在最后显示一个空白页面。您可以使用诸如 :not(:last-child)
之类的东西来阻止它。