2012-01-11 49 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