从 Internet Explorer 8 打印时,我需要为不透明度设置哪种 css 样式?
Posted
技术标签:
【中文标题】从 Internet Explorer 8 打印时,我需要为不透明度设置哪种 css 样式?【英文标题】:Which css style do I need to set for opacity when printing from Internet Explorer 8? 【发布时间】:2012-01-25 00:59:26 【问题描述】:我制作了一个包含两个重叠图像的网页。我已将不透明度过滤器应用于顶部图像,以便两个图像都可读。对于大多数浏览器,包括 IE 和 Firefox,屏幕上的不透明度都是正确的。但是,当我从 IE 7 或 8 将页面打印到真实打印机或 PDF 打印机时,只打印顶部图像。从 IE 9 和 Firefox 打印时,顶部图像正确半透明。
下面是我的网页代码。
<html>
<body>
<DIV style="POSITION: absolute; WIDTH: 366px; HEIGHT: 439px; TOP: 100px; LEFT: 100px; Z-INDEX: 1;">
<IMG style="POSITION: relative; WIDTH: 366px; HEIGHT: 439px;" src="below_picture.png">
</DIV>
<DIV style="POSITION: absolute; WIDTH: 366px; HEIGHT: 439px; TOP: 100px; LEFT: 100px; Z-INDEX: 390;">
<IMG style="POSITION: relative; WIDTH: 366px; HEIGHT: 439px; FILTER: alpha(opacity=75);" src="above_picture.png">
</DIV>
</body>
</html>
【问题讨论】:
【参考方案1】:IE8 使用-ms-filter
属性。
旧版 IE 需要filter: alpha(opacity=XX)
img.namedClass
position: relative;
width: 366px;
height: 439px;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
filter: alpha(opacity=75);
opacity: 0.75;
这个,级联,应该可以解决所有当前浏览器的问题
【讨论】:
【参考方案2】:试试这个,它会在所有主流浏览器中产生模糊效果,包括
.CLASS_NAME
/* IE 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
/* IE 5-7 */
filter: alpha(opacity=50);
/* Netscape */
-moz-opacity: 0.5;
/* Safari 1.x */
-khtml-opacity: 0.5;
/* other intelligent browsers */
opacity: 0.5;
【讨论】:
【参考方案3】:我不得不说这是IE的内置问题,因为版本不直接支持不透明度,
参考link
现在您可以看到 IE7-8 不直接支持不透明度,您可以使用带有条件 css 的过滤器
代码link
.opaque2 // for IE5-7
filter: alpha(opacity=50);
或者对于 IE8
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
内容的顺序应该是
.opaque
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; // first!
filter: alpha(opacity=50); // second!
除了您可以使用css3pie,它有一个 htc 文件,可以帮助您将 css3 规则添加到几乎所有不支持的浏览器..
我希望这会有所帮助..
【讨论】:
这也适用于打印吗? 如果在浏览器中允许打印背景和图像,那么我认为应该没有任何问题,那么我认为我们需要在每个 IE 上进行测试..(因为每个 IE 都有不同的想法):) 【参考方案4】:我认为错误在于定位..您在父 div 上使用绝对位置,而您的孩子是位置:相对..它在 IE 上不起作用..然后在 div 上使用不透明度而不是在图像上..干杯..
【讨论】:
以上是关于从 Internet Explorer 8 打印时,我需要为不透明度设置哪种 css 样式?的主要内容,如果未能解决你的问题,请参考以下文章
为啥即使在模拟 Internet Explorer 8 文档模式时,Internet Explorer 11 也不支持条件注释?
在同一台计算机上运行 Internet Explorer 6、Internet Explorer 7 和 Internet Explorer 8