我试图为我们的应用程序制作一个可打印的样式表,但我在@media打印的背景颜色有问题。

    @media print {
      #header{display:none;}
      #adwrapper{display:none;}
      td {
        border-bottom: solid; 
        border-right: solid; 
        background-color: #c0c0c0;
      }
    }

其他一切工作,我可以修改边界和这样,但背景色不会通过打印。我知道,如果没有更多细节,你们可能无法回答我的问题。我只是好奇是否有人有这个问题,或类似的,以前。


当前回答

对于chrome,我已经使用了这样的东西,它为我工作。

在body标签中,

<body style="-webkit-print-color-adjust: exact;"> </body>

或者对于一个特定的元素,假设你有一个表格你想要填充一个td,也就是一个单元格,

<table><tr><td style="-webkit-print-color-adjust: exact;"></tr></table>

其他回答

-webkit-print-color-adjust:准确;仅仅是不够的 必须在属性中使用!important

这是打印预览后,我添加!重要的每个背景颜色和颜色属性在每个标签

这是在添加之前在chrome上打印预览

现在,要知道如何注入!对div的风格很重要,看看这个答案,我无法注入一个“!”重要”规则

* {
  -webkit-print-color-adjust: exact;
}

此外,启用>模拟CSS媒体从>检查>更多的工具>渲染。非常详细的步骤可以在这里找到。

发现这个问题,因为我在谷歌应用程序脚本中从html输出生成PDF时遇到了类似的问题,其中背景颜色也没有“打印”。

-webkit-print-color-adjust:准确;重要的解决方案当然没有工作,但是盒子阴影:插入000 1000px黄金;做了……很棒的hack,非常感谢你:)

对于chrome,我已经使用了这样的东西,它为我工作。

在body标签中,

<body style="-webkit-print-color-adjust: exact;"> </body>

或者对于一个特定的元素,假设你有一个表格你想要填充一个td,也就是一个单元格,

<table><tr><td style="-webkit-print-color-adjust: exact;"></tr></table>

你可以使用标签画布并“绘制”背景,这在IE9、Gecko和Webkit上都可以使用。