我使用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类选择器打印时,似乎没有办法获得彩色背景。有没有人对此有一个解决方案。
2条答案
按热度按时间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
我没有证据证明这一点,但这是我所注意到的。
d8tt03nd2#
如果用户在打印设置中关闭了“打印背景颜色和图像”,没有CSS会覆盖它,所以总是考虑到这一点。这是一个默认设置。一旦设置好,它将打印背景颜色和图像,你有什么将工作。它被发现在不同的地点。在IE9 beta中,它位于纸张选项下的打印->页面选项中。在Firefox中,它位于选项下的页面设置-> [格式和选项]选项卡中。
可以帮助: