我有一个包含2个样式表的网页:
<link rel="stylesheet" href="/assets/css/screen.css" type="text/css" media="all" />
<link rel="stylesheet" href="/assets/css/print.css" type="text/css" media="print" />
打印样式与chrome,safari,firefox和IE9一样正常,但在IE7和IE8中完全中断。某些应隐藏的图像不是,其他应该可见的图像则不是。它看起来像一团糟,尽管如果我在IE7和IE8中为屏幕加载两个样式表,一切看起来都和我期望的完全一样。
我很遗憾无法链接到该页面,因为它是一个正在进行的客户端网站,但如果有人有任何想法,我会抓住这里的稻草。
答案 0 :(得分:14)
事实证明,问题是HTML5元素没有正确打印,HTML5 shiv默认不支持打印。
幸运的是我(和你),Alexander Farkas在这里制作了一个IE打印保护插件:https://github.com/aFarkas/html5shiv
编辑:
如果您使用Modernizr满足您的所有需求({3}}
,那么Modernizr现在看起来有一个打印shiv选项答案 1 :(得分:1)
我认为您需要将打印样式表示为替代...
<link rel="stylesheet" href="/assets/css/screen.css" type="text/css" media="all" />
<link rel="alternate stylesheet" href="/assets/css/print.css" type="text/css" media="print" />
实际上,我认为这是错误的,但我要离开了。
您可以尝试将打印样式的媒体attr更改为all,然后将样式表中的所有内容包装在打印介质查询中:
@media print { … }
答案 2 :(得分:1)
在没有看到你的css和标记的情况下,它真的是一个黑暗的镜头,或者至少是它的一大块!
position:absolute
的评论中提到fixed
或position:static
的打印元素存在问题;意味着你应该手动重排它们(设置* {position:static !important;}
或者可能完全隐藏元素)。处理它的一个硬核方法是添加
print.css
到{{1}};但它的适当性取决于页面的复杂程度以及您希望如何打印(例如文本,标题和徽标或正确设计的体验)。
如果您还没有决定要制作的印刷体验,请考虑阅读另一个专注于此的this msdn article!
答案 3 :(得分:0)
仅供参考我在IE9和#39;替代&#39;中有这个问题,即
<link rel="alternate stylesheet" href="......." type="text/css" media="print" />
在IE9中为我工作!