如何停止打印媒体的 Bootstrap 表背景色设置超过我的类设置

j2datikz  于 2023-05-11  发布在  Bootstrap
关注(0)|答案(2)|浏览(107)

我使用twitter-bootstrap作为我的HTML的主要样式。
我有一个表,这是生成(从ember应用程序)和表的每个单元格有一个背景颜色设置,以指示特定的状态。颜色由类选择器设置。
这个工作完美的屏幕,但打印时我只是得到白色的背景颜色,因为引导定义如下:

@media print {
  .table td, .table th {
    background-color: #fff !important;
  }
}

我的HTML看起来像这样:

<table class-"table table-condensed>
   <tr>
     <td class="bg-color1>Content</td>
     <td class="bg-color2>Content</td>
   </tr>
</table>

我的CSS看起来像这样:

.bg-color1 {
  background-color: #ababab;
}
.bg-color2 {
  background-color: #bababa;
}
@media print {
 .bg-color1 {
   background-color: #ababab;
 }
 .bg-color2 {
   background-color: #bababa;
 }
}

如果我在打印媒体类描述中使用!important,它仍然不起作用。此外,如果我添加以下内容来“撤消” Bootstrap 中的td th设置,它将不起作用,因为这将优先于我的类设置,因此打印时我仍然无法获得颜色

@media print {
 .table td, .table th {
   background-color: initial !important;
  }
}

使用bootstrap类选择器打印时,似乎没有办法获得彩色背景。有没有人对此有一个解决方案。

6jygbczu

6jygbczu1#

哦,是的,只是注意到一些东西…CSS有一个让人头疼的偏好,选择树越大,它的优先级就越高。有关详细信息,请参阅CSS specifity
例如,table > td仅优先于td
在Bootstrap的CSS中,td被选择为.table td,但您的选择器只是.bg-color1.bg-color2
有两种方法可以解决这个问题。
1.从Bootstrap的CSS中删除!important并将!important保留在CSS中
1.增加选择器的长度,类似于.table .bg-color1
我没有证据证明这一点,但这是我所注意到的。

d8tt03nd

d8tt03nd2#

如果用户在打印设置中关闭了“打印背景颜色和图像”,没有CSS会覆盖它,所以总是考虑到这一点。这是一个默认设置。一旦设置好,它将打印背景颜色和图像,你有什么将工作。它被发现在不同的地点。在IE9 beta中,它位于纸张选项下的打印->页面选项中。在Firefox中,它位于选项下的页面设置-> [格式和选项]选项卡中。
可以帮助:

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

相关问题