2012-01-11 44 views
0

默認情況下,某些網絡瀏覽器(例如Firefox和IE)在打印對話框中禁用背景色。是否有html/css可以用來爲即使在這種情況下打印的元素創建背景顏色?如何在網頁中設置背景顏色,以便默認打印?

或者,有一種整潔的方式可以在打印網頁之前警告用戶?

編輯:我之前沒有說清楚,但是網頁被設計成可以打印。主要背景是白色,但偶爾的單詞和短語用背景色突出顯示。要使事情稍微複雜一些,頁面內容和突出顯示主要由用戶決定。

回答

1

爲了警告用戶,您可以使用onbeforeprint事件屬性。

+0

這是我最終使用的解決方案 - 謝謝。 – tttppp 2012-01-19 08:32:13

-1

我認爲它更好地將您的背景顏色轉換爲小圖像,並在您的背景使用CSS重複它。

background: url("../images/headerblue.gif") repeat-x scroll left 7px transparent; 
+0

這是一個可怕的想法。由於不打印背景顏色的瀏覽器也不會打印背景圖像,因此會佔用更多的帶寬,需要更多的工作並且無法解決問題。 – Quentin 2012-01-11 13:58:34

+0

我使用背景色突出顯示單詞/短語。頁面背景爲白色,因爲它打算用於打印。 – tttppp 2012-01-11 14:00:14

+0

@tttppp - 改爲使用粗體或斜體。 – Quentin 2012-01-11 14:01:12

1

從理論上講,你可以風格單個像素圖像被絕對定位背後的內容和縮放......但是這是一個可怕的解決問題的方法。

使用大塊墨粉或墨水可能會很昂貴。改爲創建一個針對白色背景進行優化的打印樣式表。

+0

這可能是最好的答案。長話短說,沒有沒有CSS/JS的方式來打印背景圖像。允許Javascript(CSS不是一種真正的編程語言)對計算機的訪問是一個壞主意(安全性)。瀏覽器將在「IMG」標籤中打印某些內容。你可以在一些內容後面添加IMG標籤,但這是一種可怕的方法。在打印機樣式表上優化白色的顏色是一個很好的建議。 – jmbertucci 2012-01-11 14:12:00

-1

使用不同介質類型的打印:

<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 
+0

這不會覆蓋「不打印背景」用戶首選項。 – Quentin 2012-01-11 14:00:46

+0

這是一個瀏覽器首選項,你只能這麼做,直到用戶覆蓋。 – 2012-01-11 14:02:16

+0

在瀏覽器的打印對話框中有非常有限的選項,現在看着它們,我沒有看到任何不打印背景顏色的選項。如果發生這種情況,可能是您的打印機設置,而不是您的瀏覽器設置... – 2012-01-11 14:03:59