15

从 Firefox 打印时我遇到了很大的麻烦(任何版本,我的是 16.0.2,但即使是 Aurora 开发版本也是如此)。打印页面时,缩小以适应打印预览不起作用。唯一的方法是,如何使页面适合纸张是在同一个对话框中选择缩放 70%。其他问题:它只打印第一页。该怎么办?

4

3 回答 3

15

我需要调整 CSS 文件以进行打印,所以我做了一个。它可以在任何地方完美运行,但不能在 Firefox 中运行。出了什么问题?

首先,我尝试在 print.css 文件中为 BODY 和 HTML 指定宽度和高度。比边距等

后来我发现了问题所在:标准 CSS 文件中包含以下内容:

body {
 ...
 overflow-x: hidden;
 overflow-y: scroll;
}

所以我在 print.css 文件中添加了以下内容:

body {
 overflow-x: visible;
 overflow-y: visible;
}

我猜,如果你只在 CSS 中指定了溢出,而不是 -x 和 -y,那么你只需要在 print.css 文件中指定溢出:可见。

从 Firefox 打印现在可以正常工作了。我只是想,这可能会对在 Firefox 中发生奇怪打印行为的人有所帮助。

于 2012-11-21T16:46:12.383 回答
1

除了 Kokesh 的回答,有些时候属性

display: table

也会产生这个问题。因此,您需要将其更改为“阻止”或其他适合您要求的内容。

于 2016-07-09T04:39:20.493 回答
0

我尝试了其他答案中建议的修复程序,但他们并没有为我解决问题。经过大量的研究和反复试验,我发现这篇文章被 A list 分开。我很怀疑,因为它太旧了,但它指出:

如果浮动元素超出了打印页面的底部,则浮动的其余部分将有效地消失,因为它不会在下一页上打印。

因为我有一个大的浮动容器,我想我会试一试。所以,我从其他答案和这篇文章中混合起来,想出了这个:

body { 
    overflow: visible !important; 
    overflow-x: visible !important; 
    overflow-y: visible !important; 
}

/*this is because I use angular and have this particular layout*/
body > .fade-ng-cloak { 
    height: 100%; 
    display: block;
    flex: none;
    float: none;
}
.l-content,
.l-sidebar {
    float: none;
}

所以基本上:

  1. 将身体设置为overflow: visible
  2. 将充当包装器的元素设置为display: block,消除所有flex样式并在必要时重置高度
  3. 消除float长容器

这种混合对我有用!我很高兴我想我会分享:)

于 2017-03-17T08:14:30.307 回答