use*_*874 2 css printing internet-explorer-8 internet-explorer-9 media-queries
我的公司正在使用print.css进行打印.另外,我们有另一个style.css覆盖任何其他.css文件,包括print.css.出于某种原因,当来自html5样板(位于覆盖文件中)的@media打印查询打开时,IE8和IE9正在打印空白页.当它被注释掉时,没有问题.这是什么问题?我们想留下来自样板的@media打印.
PRINT.CSS
@media print
{
body *
{
visibility:hidden;
}
#basicShell #main,
#basicShell #main *,
.basicShell_container .content,
.basicShell_container .content *,
#mainShell_container .center_columnContent,
#mainShell_container .center_columnContent *
{
visibility:visible;
}
#basicShell #main,
.basicShell_container .content,
#mainShell_container .center_columnContent
{
position:absolute;
left:0;
top:0;
}
}
Run Code Online (Sandbox Code Playgroud)
STYLE.CSS(覆盖一切)
@media print {
* { background: transparent !important; color: black !important; text-shadow: none
!important; filter:none !important; -ms-filter: none !important; float: none
!important;} /* Black prints faster: h5bp.com/s */
a, a:visited { text-decoration: underline; }
a[href]:after { content: " (" attr(href) ")"; }
abbr[title]:after { content: " (" attr(title) ")"; }
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /*
Don't show links for images, or javascript/internal links */
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
thead { display: table-header-group; } /* h5bp.com/t */
tr, img { page-break-inside: avoid; }
img { max-width: 100% !important; }
@page { margin: 0.5cm; }
p, h2, h3 { orphans: 3; widows: 3; }
h2, h3 { page-break-after: avoid; }
}
Run Code Online (Sandbox Code Playgroud)
我遇到了与HTML5 Boilerplate相同的问题.
就我而言,事实证明是这一行:
tr { page-break-inside: avoid; }
Run Code Online (Sandbox Code Playgroud)
这导致了IE8/9中的空白页面.该页面在标签中有大量内容(超过一页的价值),IE决定通过跳过页面并切断内容来处理它.呸.
为了避免弄乱HTML5 Boilerplate,我在自己的样式表中添加了以下内容,并解决了问题:
tr { page-break-inside: auto; }
Run Code Online (Sandbox Code Playgroud)
您的问题可能是由于标记不同,因此请检查设置page-break-inside属性的任何内容.