在 Firefox 和 IE 中打印背景颜色

Posted

技术标签:

【中文标题】在 Firefox 和 IE 中打印背景颜色【英文标题】:Printing background-color in Firefox and IE 【发布时间】:2013-06-01 14:18:36 【问题描述】:

我时遇到了一些问题。对于 Google Chrome,我发现了以下 hack,它运行良好,但对于 Firefox 和 IE,我找不到任何东西。

//Hack for Google Chrome
-webkit-print-color-adjust:exact;

如果有人可以帮助我,我很高兴。

【问题讨论】:

没有人吗?请帮我分享这篇文章... 我在这里添加了一个 hack:***.com/questions/764520/… CSS @media print issues with background-color;的可能重复 【参考方案1】:

对于 Firefox,在“打印”对话框中有一个“高级”或“显示详细信息”按钮,如果单击该按钮,则在“外观”下有两个复选框。一种用于打印背景颜色和打印​​背景图像。

【讨论】:

谢谢你的回答,但我需要一些不依赖于用户的东西,应用程序中的一些东西来自动打印它,比如对谷歌浏览器的破解。 不幸的是,如果没有用户交互,这是不可能的。 html 打印真的很有限。【参考方案2】:
* 
-webkit-print-color-adjust: exact;
printer-colors: exact;
color-adjust: exact;

浏览器:Chrome、Safari、FireFox

更多:https://wiki.csswg.org/ideas/print-backgrounds

【讨论】:

IE - No. Edge (75+) - 是【参考方案3】:

如果您可以将元素设置为固定的高度/宽度,则可以设置其大小,将 1 像素的彩色图像放入其中(您希望背景为任何颜色)并使其填充空间。然后您就可以绝对将您的内容放在首位。

<div style="position: relative; width: 100px; height: 100px;">
    <img src="/images/blue.png" style="width: 100px; height: 100px;">
    <div style="position: absolute; top: 0px; left: 0px;">
        Hello world
    </div>
</div>

或者你可以用边框代替图片做同样的事情:

<div style="position: relative; width: 100px; height: 100px;">
    <div style="width: 0; height: 0; border: 50px solid black;">
    <div style="position: absolute; top: 0px; left: 0px;">
        Hello world
    </div>
</div>

(来自这里的原创想法:https://defuse.ca/force-print-background.htm)

【讨论】:

【参考方案4】:

对于火狐

color-adjust:exact;

将与-webkit-print-color-adjust:exact; 一样工作

【讨论】:

【参考方案5】:

正如 Spark 所说,这似乎是不可能的,但您有时可以使用宽边框作为解决方法(例如,高度为 0 且边框为 100 像素的 div)。

【讨论】:

以上是关于在 Firefox 和 IE 中打印背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

强制浏览器在 chrome、firefox 上打印背景图像

Firefox 和 IE 中 -webkit-print-color-adjust 的替代方法是啥

背景图像颜色更改 firefox/chrome

怎么设计css网页背景颜色过渡?

css3背景颜色渐变属性 兼容性测试基础环境为:windows系统;IE6.0+, Firefox4.0+, Chrome4.0+, Safari4.0+, Opera15.0+

更改单选按钮的背景颜色