Печать цвета фона таблицы HTML с помощью Bootstrap

Если я использую класс Bootstrap table в таблице, предварительный просмотр печати не отображает цвет фона для tr.

Мой код

<head>
  <!-- All Bootstrap stuff ... -->

  <!-- My custom style -->
  <style type="text/css">
    @media print {
      .bg-danger {
        background-color: #f2dede !important;
      }
    }
  </style>
</head>
<body>
  <div class="bg-danger">
    <td>DIV</td>
  </div>

  <table class="table">
    <tr class="bg-danger">
      <td>TR 1</td>
    </tr>
    <tr class="danger">
      <td>TR 2</td>
    </tr>
    <tr style="background-color: #f2dede !important;">
      <td>TR 3</td>
    </tr>
  </table>
</body>

На экране все красное, но при предварительном просмотре только элемент div красный.

Если я удалю класс table, все будет работать (за исключением того, что мне нужен стиль таблицы).

Моя конфигурация: IE11 и Windows 7.

Есть ли уловка для печати цвета фона?

Примечание. Указанный дубликат (проблемы с печатью CSS @media с фоновым цветом;) здесь не проблема, мои настройки для печати цветов фона. Кроме того, я могу напечатать цвет для нескольких других элементов.

Ответ:

Благодаря комментариям @Ted, я переопределил стиль td для класса table:

<style type="text/css">
  @media print {
    .bg-danger {
      background-color: #f2dede !important;
    }

    .table td {
      background-color: transparent !important;
    }
  }
</style>

Ответ 1

Bootstrap явно устанавливает фоновый цвет в белый для печати - это в CSS:

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

Напишите свое переопределение, как и их, и вам должно быть хорошо идти.

Ответ 2

Нет. По умолчанию они не печатаются. Это опция браузера, которая не может быть преодолена с помощью CSS/JS и т.д.

Вот это, которые заставляют цвета... якобы в Chrome

-webkit-print-color-adjust

который указан как поддержка BUGGY ТОЛЬКО для хром и не поддерживается в других браузерах.

Ответ 3

Я использовал строку заголовка таблицы th и ввел ее в стиле

.table th {
        background-color: #2D3347 !important;
        color: #fff !important
    }

Ответ 4

Я думаю, что лучший способ - использовать более специфичный селектор css

<style>
@media print {
   .table td.cell {
     background-color: blue !important;
   }
}
</style>

<table class="table">
  <tr>
    <td class="cell">TR 1</td>
  </tr>
</table>