我试图为我们的应用程序制作一个可打印的样式表,但我在@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>

其他回答

不要在打印样式表中设置背景颜色。只要在正常的css文件中设置属性,它就可以正常工作:)

签出这个例子:带有页眉和页脚的终极打印HTML模板

演示:带页眉和页脚的终极打印HTML模板演示

启用Chrome后台打印:

body {
  -webkit-print-color-adjust: exact !important;
}

编辑: Chrome、Safari和Firefox浏览器:

body{
  -webkit-print-color-adjust:exact !important;
  print-color-adjust:exact !important;
}

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

tr.group-title {
  padding-top: .5rem;
  border-top: 2rem solid lightgray;
}

tr.group-title > td h5 {
  margin-top: -1.9rem;
}

          <tbody>
            <tr class="group-title">
              <td colspan="6">
                <h5 align="center">{{ group.title }}</h5>
              </td>
            </tr>

工作在Chrome和边缘

如果用户在打印设置中关闭了“打印背景颜色和图像”,没有CSS会覆盖它,所以一定要考虑到这一点。这是默认设置。

一旦设置好,它就会打印背景颜色和图像,你所拥有的就可以工作了。

它在不同的地方被发现。 在IE9beta中,它可以在打印->页选项下的纸张选项中找到

在FireFox中,它在页面设置->[格式和选项]选项卡下的选项。