CSS @media打印根本不起作用

Jul*_*lez 23 html css printing

我正在努力工作几个小时,为什么@media打印不起作用,我甚至在这个网站上搜索Google并没有任何帮助,所以这就是我发布这个问题的原因.我正在Google Chrome打印预览(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" />
Run Code Online (Sandbox Code Playgroud)

HTML

<div id="bruikleenovereenkomst">
    <div id="blo_header">

    </div>

    <div id="blo_side_top"></div>
    <div id="blo_side_bottom"></div>
</div>      
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

CSS打印样式(print.css)注意: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;
    }

}
Run Code Online (Sandbox Code Playgroud)

我打印的所有内容都只是一个空白页面.

Ric*_*ard 30

如果您使用的是@media print,则需要在样式中添加!important,否则页面将使用具有更高优先级的元素的内联样式.

例如

<div class="myelement1" style="display:block;">My div has an inline style.</div>
Run Code Online (Sandbox Code Playgroud)

在@media print中,添加!important并成为赢家

@media print {
   .myelement1, .myelement2 { display: none !important; }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果!important仅适用于@media打印,则不应影响正常的页面样式.它不优雅,但是如果你有内联样式,你需要一种方法来覆盖它们,因为它们本身并不是很优雅. (3认同)

Nos*_*a80 16

首先,我会尝试在打印后添加空格.可能没什么区别,但.....

@media print {
     /*print css here*/
}
Run Code Online (Sandbox Code Playgroud)

接下来,在浏览器中打印通常会忽略背景颜色.尝试使用'box-shadow'....

@media print {
     #bruikleenovereenkomst {
         width: 100%;
         height: 500px;
         box-shadow:  inset 0 0 0 1000px #000;
     }
}
Run Code Online (Sandbox Code Playgroud)

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;
   }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

  • 正在寻找背景颜色 : ' ),难怪我没有看到变化。 (4认同)