【发布时间】:2010-11-01 18:52:46
【问题描述】:
请检查下面的 HTML 代码。第 3 个 DIV 部分可见,因为它被第 2 个(具有白色背景)覆盖。到目前为止一切顺利,一切都在 IE 和 Firefox 中正确显示。
当我打印页面时,问题就开始了。在 Firefox 中,它按页面上显示的方式打印。在 Internet Explorer 8 中,它以某种方式完全打印所有 DIVS。看起来好像它在第二个 DIV(或全部)上应用了不透明度过滤器,这使得第三个 DIV 完全可见......
我为页面的打印版本创建了一个带有新内容(在 javascript 中)的白色叠加层。由于上述问题,它无法正常工作,因为覆盖层下方的所有内容也会被打印出来......
为什么 IE8 会打印这种不可见的内容?有解决办法吗?
<html>
<head>
</head>
<body>
<div style="background-color:#999999;position:relative;border:solid 1px black;width:500px;height:500px;">
<div style="position:absolute;width:300px;height:200px;top:5px;left:5px;border:dashed 1px #cccccc;z-index:99;background-color:white;"></div>
<div style="position:absolute;width:100px;height:200px;top:100px;left:50px;border:dashed 5px #cccccc;z-index:98;background-color:white;"></div>
</div>
</body>
</html>
【问题讨论】:
-
RichieHindle 可能已经标记了问题。打印时不能依赖颜色和类似的视觉技巧 - 以确保在纸张上具有良好的对比度,每个浏览器都会根据自己的规范操作页面(当您的第一个 Opera 用户尝试打印时,您会喜欢它,特别是如果您使用 CSS 打印建议,例如分页符)。如果您希望它像您在屏幕上看到的那样打印,您需要简单 - 仅使用 CSS 的主要预期功能,不要依赖副作用来实现您的布局。大多数网站为此目的只有一个单独的可打印页面。
-
没错,他是正确的。然而,要求用户更改打印设置是不可取的。我最终隐藏了完成这项工作的其余内容。
标签: html css printing internet-explorer-8