2012-11-21 146 views
13

我從Firefox打印時遇到了很大的麻煩(任何版本,我的版本是16.0.2,但即使是Aurora dev build也一樣)。 打印頁面時,縮小以適應打印預覽不起作用。只有這樣,如何將頁面放在紙上才能在同一個對話框中選擇縮放70%。其他問題: 它只打印第一頁。 怎麼辦?Firefox只打印第一頁,並在右側打印頁面

回答

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中出現奇怪的打印行爲。

+2

真棒的人! –

1

除了Kokesh的答案,有時屬性

display: table 

也產生這個問題。因此,您需要將其更改爲「阻止」或其他符合您的要求的內容。

0

我嘗試了其他答案中的修復建議,但他們沒有爲我解決問題。經過大量的研究和試用&的錯誤,我發現this article被A列表分開。我是持懷疑態度,因爲它是如此古老,但它指出:

如果浮動元素跑過打印頁面的底部,浮子的其餘部分將有效地消除,因爲它不會在下次打印頁。

由於我有一個大浮動容器,我想我會試試看。所以,我從其他的答案混合和這篇文章,並想出了這個:

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

這混合爲我工作!我很高興我想我會分享:)