Css 如何在IE/FF中添加用于打印的背景图像?

Css 如何在IE/FF中添加用于打印的背景图像?,css,internet-explorer,firefox,printing,background-image,Css,Internet Explorer,Firefox,Printing,Background Image,在其他主题中,我发现了这一点。现在这是一个遗憾,因为背景图像添加了一些很难用经典的标记重现的可能性: 可以将它们水平和垂直对齐 如果它们大于目标元素,则可以裁剪它们(这也支持CSS精灵的想法) 现在,这并不是不可能做到的,但这需要我有不同的HTML版面来打印和普通页面,并且打印版面将非常复杂(因为我必须使用s来实现垂直对齐)。同样,CSS精灵的好处也将丢失 还有希望吗?我想,@media print没有帮助,但是否有其他东西,可能是特定于浏览器的,可以让人说:“是的,这不是正常的背景,即使在

在其他主题中,我发现了这一点。现在这是一个遗憾,因为背景图像添加了一些很难用经典的
标记重现的可能性:

  • 可以将它们水平和垂直对齐
  • 如果它们大于目标元素,则可以裁剪它们(这也支持CSS精灵的想法)
现在,这并不是不可能做到的,但这需要我有不同的HTML版面来打印和普通页面,并且打印版面将非常复杂(因为我必须使用
s来实现垂直对齐)。同样,CSS精灵的好处也将丢失


还有希望吗?我想,
@media print
没有帮助,但是否有其他东西,可能是特定于浏览器的,可以让人说:“是的,这不是正常的背景,即使在打印视图中,它也确实需要存在”

不可能。您必须了解如何将背景图像转换为img或使用画布。当然,使用画布取决于您支持哪种IE


它是一种限制背景图像打印的浏览器设置。我认为其背后的逻辑是,供应商希望给用户打印背景图像的选项,并确保web开发人员不能通过某种脚本更改这些设置

一般来说,应该保留背景图像,以便添加到页面设计中,但这些图像对于理解内容不是必需的。因此,在打印页面时,它们是否丢失并不重要。如果某个东西(如产品快照)很重要,那么应该将其作为实际图像包括在内(这样可以更容易访问)


你能看看包括图像,然后使用CSS隐藏它,并将其复制为背景图像(可能使用JS动态复制)吗?这样,您可以确保图像本身显示在打印样式表中,并获得背景图像带来的好处。我创建了一个非常简单的示例。

据我所知,这是不可能的,但希望堆栈溢出方面的人员知道一个聪明的技巧。您正在打印什么?某种报告?@Paul D.Waite——这就是问题所在。谷歌的搜索结果似乎令人沮丧P@thritydot-实际上,这是电子商店的产品页面。产品图片通过CSS背景(也可以用作溢出保护)居中于“预览”方框中,因此它不会显示在打印视图中。但根据我的经验,CSS背景通常在网页设计中发挥作用,因为它们允许更简单的HTML布局。例如,我可以只写一个好问题,而不是一个
,一个我们很多人在某一天都会遇到的情况。对我来说,这似乎是一个奇怪的决定。我认为这样的事情会破坏大多数当代网页。但我想那将是一场宗教辩论。我仍然认为至少包括一个覆盖选项是有意义的。或者,更好的是——尊重
media:print
types of stylesheets中指定的那些背景图像——毕竟,这非常清楚地表明页面是用特定的背景图像打印的。打印背景图像需要大量墨水。用户可以随时选择打印设置中的内容。通常当你打印东西时,你想要的是文本而不是背景图像,这是浪费墨水。如果您正在制作一个使用css样式表来制作精美的应用程序,那么就要包括关于用户如何启用背景打印的说明。由于背景图像提供的附加功能,它作为背景图像存在。如果我将其转换为一个简单的图像(使用其他方法保留相同的布局),则无需保留背景图像并进行额外的切换工作。很高兴你可以在任何地方都使用图像作为内容,但只要它们(
)都提供了完全不同的功能,它们就不是彼此的替代品。对于没有替代品的
背景色
,情况更糟。你打算如何在没有背景色的打印输出中突出显示内容?我同意-我更多地指出了导致默认不打印bg图像的想法(由浏览器供应商)。你能看看把图像(使用JS)作为伪元素插入吗?这不是我能想到的在打印样式表中显示HTML中没有的图像的唯一方法。恐怕在涉及精灵的情况下,这并不能给你提供很多解决方案。