HTML / CSS-почему цвет фона становится белым при печати?
мой цвет фона или даже цвета шрифтов моих элементов внезапно становятся белыми при печати. Вот пример разметки:
<div id="ActionPanel">
<input type="button" onclick="javascript:window.print();" value="Print">
</div>
<p id="P1">
Hello World!
</p>
<p id="P2">
Hello Web!
</p>
<p id="P3">
Hello StackOverflow
</p>
а вот CSS
@media all
{
body
{
background-color:green;
}
#P1
{
background-color:#f00;
}
}
@media print
{
#ActionPanel
{
visibility:hidden;
}
}
2 ответов
все фоны автоматически удаляются из печатной версии. Это способ предотвратить отходы чернил.
вы можете, однако, включить его в своем браузере. (Как это сделать зависит от каждого браузера в частности).
нет возможности печатать цвета фона без ручной настройки предпочтений в вашем браузере. Тем не менее, это может быть не вариант для некоторых людей. Лучшее решение, которое я могу найти, довольно неэлегантно. Вместо использования" background-color " (который не печатается), вы должны создать тег div с большой цветовой границей на нем. Дело в том, что цветные границы могут печатать правильно. Затем, где отображается выделенный цвет, положите другой тег div с текстом на нем сверху. Неэлегантно, но работает.
лучше всего установить как текст div, так и подсветку div в третьем div для удобства размещения. внутренние дивы должны быть позицией "абсолютной", а внешние дивы должны иметь позицию"относительной". Этот пример кода протестирован как в firefox, так и в chrome:
<style type="text/css">
#outer_box {
position: relative;
border: 2px solid black;
width: 500px;
height:300px;
}
#yellow_highlight {
position: absolute;
width: 0px;
height: 30px;
border-left: 300px;
border-color: yellow;
border-style: solid;
top: 0;
left: 0px
}
#message_text {
position: absolute;
top: 0;
left: 0px;
}
</style>
<body>
<div id="outer_box">
<div id="yellow_highlight"> </div>
<div id="message_text">hello, world!</div>
</div>
</body>