2010-06-15 72 views
10
我用css來

僅打印頁面的部分:CSS:隱藏的元素仍然佔用空間在打印輸出

body { 
visibility:hidden; 
    } 
    .print { 
    visibility:visible; 
    background-color: white; 
    margin: 0; 
    } 

我想打印才能正確隱藏在打印元件上方的部分輸出,但它仍佔用空間的面積。我通過製作一個長長的單詞列表來測試這一點。在打印輸出中,出現空白區域相同的空白區域,然後出現元素輸出。此問題僅出現在Chrome和Mozilla上。我也測試了瀏覽器的保證金選項,這不是問題。

任何想法?

回答

17

想要display:none不是visibility:hidden。後者使元素不可見,但不會將其從文檔流中移除。

+0

謝謝我的CSS很弱。我猜這是一個壞主意,顯示:沒有整個身體?我應該在網頁上添加要打印的內容還是刪除我不想要的內容? – Cosmin 2010-06-15 15:02:07

+0

我認爲在'body'上顯示:none'將是一個壞主意,但我從來沒有嘗試過!可能最好只在非打印元素上使用「display:none」(您可以在標記中爲它們添加一個非打印類)。 – Skilldrick 2010-06-15 15:05:49

+0

聽起來很好,謝謝。 – Cosmin 2010-06-15 15:14:03

1

使用display:none;因爲您只想顯示打印和身體的任何部分。

2

使用@media進行打印。例如:

@media print { 
    * {display: none;} /*or if you want only the body*/ body {display: none;} 
    .print {display: block;} 
} 

(只是粗略的例子的實際的樣式表應該包括一個網頁,而不是通配符的所有元件)

然後打印時樣式表只用於,或打印預覽。

-1

即使visibility:collapse;做到了! :)

+0

如果應用於非表格元素,「visibility:collapse」與「visibility:hidden」相同 – 2015-08-27 13:07:54

2

如果我們想要display:inline-blockdisplay:block伴隨着可見性隱藏。

然後我們可以使用follwing css作爲解決方法。

{ 
    visibility:hidden 
    width:0px; 
    height:0px 
} 
+0

我遇到了打印5個黑色頁面的問題,因爲主體剛剛隱藏。將高度設置爲0完美無缺! – Auzy 2017-02-10 21:40:13