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

box-shadow: inset 0 0 0 1000px gold;

适用于所有盒子——包括表格单元格!!

(如果pdf打印机的输出文件是可信的…?) 只在Ubuntu上的Chrome + Firefox中测试…

两个解决方案的工作(至少在现代Chrome -还没有测试超越):

!重要的权利在常规的CSS声明作品(甚至不是在@media打印) 使用svg

还有一个技巧,你可以不用激活打印边框选项,在其他文章中提到过。因为边界是打印出来的,你可以用下面的方法模拟纯色背景:

.your-background:before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: -1;
  border-bottom: 1000px solid #eee; /* Make it fit your needs */
}

通过将类添加到元素中来激活它:

<table>
  <tr>
    <td class="your-background">&nbsp;</td>
    <td class="your-background">&nbsp;</td>
    <td class="your-background">&nbsp;</td>
  </tr>
</table>

尽管这需要一些额外的代码和一些额外的注意来使背景颜色可见,但这是我所知道的唯一解决方案。

注意,这个hack对display: block以外的元素不起作用;或者display: table-cell;,例如<table class="your-background">和<tr class="your-background">将不起作用。

我们使用这个来获得所有浏览器的背景色(仍然需要IE9+)。

身体{ background - color: # E5FFE5; } .bg_print { border-bottom: 30px solid #FFCC33; } .orange_bg_print_content { margin-top: -25 px; 填充:0 10px; } < div class = " bg_print”> < / div > < div class = " orange_bg_print_content”> 我的内容与背景! < / div >

测试和工作在Chrome和Firefox和Edge…

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和边缘