CSS @media print не работает вообще
Я боюсь часами, потому что печать @media не работает, я ищу в Google даже на этом сайте, и ничего не помогло, поэтому я задаю этот вопрос.
Я тестирую его на предварительном просмотре chrome на Google (ctrl p), но я также распечатал его на странице, и он остается пустым.
Я пытаюсь сделать отдельный файл css, а также встроенный CSS-стиль на странице.
Вот мой код
Заголовки
<link rel="stylesheet" type="text/css" href="css/reset.css" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link rel="stylesheet" type="text/css" href="css/print.css" media="print" />
HTML
<div id="bruikleenovereenkomst">
<div id="blo_header">
</div>
<div id="blo_side_top"></div>
<div id="blo_side_bottom"></div>
</div>
Стандартные стили CSS
div#bruikleenovereenkomst {
width:595px;
height:842px;
background-color:#fff;
position:relative;
}
div#blo_header {
width:100%;
height:125px;
background-color:#FBE983;
z-index:9
}
div#blo_side_top {
width:57px;
height:420px;
background-color:#B6CAE5;
position:absolute;
right:0;
top:0;
z-index:99;
}
div#blo_side_bottom {
width:57px;
height:420px;
background-image:url(../images/leaflet.png);
background-repeat:no-repeat;
position:absolute;
right:0;
bottom:0;
z-index:99;
}
стили печати CSS (print.css) note: div # bruikleenovereenkomst - это всего лишь черный блок для тестирования.
@media print{
body {
margin:0;
}
h1#logo {
display:none;
}
ul#menu {
display:none;
}
div#bruikleenovereenkomst {
width:100%;
height:500px;
background-color:#000;
}
div#blo_header {
display:none;
}
div#blo_side_top {
display:none;
}
div#blo_side_bottom {
display:none;
}
}
Все, что я получаю при печати, - это просто пустая страница.
Ответы
Ответ 1
Если вы используете печать @media, вам необходимо добавить! важно в ваших стилях, или на странице будут использоваться стили inline с более высоким приоритетом.
например.
<div class="myelement1" style="display:block;">My div has an inline style.</div>
В @media распечатать, добавить! важно и быть победителем
@media print {
.myelement1, .myelement2 { display: none !important; }
}
Ответ 2
Сначала я попробую добавить пробел после печати. Может не изменить ситуацию, но.....
@media print {
/*print css here*/
}
Затем печать в браузерах обычно игнорирует цвета фона. Попробуйте использовать "box-shadow"....
@media print {
#bruikleenovereenkomst {
width: 100%;
height: 500px;
box-shadow: inset 0 0 0 1000px #000;
}
}
Smashing Magazine имеет несколько отличных указателей: http://www.smashingmagazine.com/2013/03/tips-and-tricks-for-print-style-sheets/
Обратите внимание, что они говорят о печати из браузера Webkit (например, Chrome или Safari) и пытаются заставить принтер отображать цвета по мере их появления на экране с помощью отдельного медиа-запроса.....
@media print and (color) {
* {
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
}
Надеюсь, это поможет!