Часто бывает здорово, что фоны CSS не печатаются, однако иногда я использую их для передачи контекстной информации. Как лучше всего обойти CSS-фоны, которые не печатаются, но вы действительно хотите отобразить? Пример, над которым я сейчас работаю, представляет собой таблицу, отображающую финансовую информацию. Для обозначения «хорошего» числа используются разные цвета фона (например, очень прибыльный, прибыльный, нейтральный, отрицательный, очень отрицательный).






Вы можете сделать шрифт больше и / или жирным, и / или курсивом, и / или красочным.
Я столкнулся с той же проблемой табличных данных цветового кодирования в html, в конце концов я просто переключился на генерацию pdf для цветных распечаток и сделал только черно-белый доступным в html
Я использовал границы для имитации фона, когда мне действительно нужен цвет фона. Что-то вроде этого будет работать (но я прошу прощения за то, что не тестировал это):
div.must-have-background-for-print {
position: relative;
width: 400px;
}
div.must-have-background-for-print div.background {
position: absolute;
top: 0;
left: 0;
height: 100%;
border-left: 400px solid #999;
}
В ответ на комментарий @Steve Quezadas идея состоит в том, что вместо использования фона вы вставляете элемент в элемент, которому требуется фон, и применяете к нему чрезвычайно широкую границу, чтобы он заполнял внешний элемент. Скорее всего, это потребует, чтобы содержимое этого элемента также находилось внутри другой оболочки, чтобы оно отображалось над новым элементом фона ...
Если вы начали с этого:
<div class = "has-background">Some stuff in here</div>
Вы можете использовать это:
<div class = "has-background">
<div class = "background" />
<div class = "content">Some stuff in here</div>
</div>
Это очень уродливо, но я использовал его в прошлом, и он действительно решает проблему, когда цвета фона не печатаются. И, прежде чем вы спросите, вам придется адаптировать CSS к вашему конкретному случаю. Я просто описываю концепцию использования границ для замены фона. Ваша реализация будет зависеть от того, как структурирована ваша страница, и это чрезвычайно сложно сделать, если у вас нет фиксированной ширины или высоты ваших элементов.
@Steve Quezadas: Обновил мой ответ ответом.
Это настройка браузера. Включите фоновую печать в IE. Таким образом, вы можете либо изменить настройки браузера (возможно, если в интрасети), либо просто экспортировать свой отчет в Excel или другой формат для печати.
Два предложения:
Вы даже можете включить их в обычный вид с помощью цветов фона.
Меня несколько смущает смысл приведенного выше кода. Почему «div.must-have-background-for-print» указан дважды? Один из блоков имеет позиционирование «абсолютное», а другой блок - «относительное». Кроме того, «div.background» ищет div с классом «background», верно? Итак, есть два div? Один для фона, а другой div для контента, который накладывается поверх фона?