0

我有一个覆盖 div,它是 body 标记的子级 div 的背景应该是透明的白色,我不想用 png 来伪造它。我有以下 sass:

.my-overlay
    @include opacity(0.6)
    background: #fff
    position: absolute
    top: 0
    left: 0

这编译为:

.my-overlay
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
    opacity: 0.6;
    background: white;
    position: absolute;
    left: 0;
    top: 0;

我也有以下

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

透明度适用于 Chrome、Safari 和 FF,但不适用于 IE8。在 IE8 中,div 的背景呈现不透明的白色(我正在 OS X 上的 XP/IE8/VMWare 中进行测试)。它在兼容模式下也不起作用。

我还尝试手动将过滤器更改为 -ms-filter,但没有效果。

IE8 开发人员工具栏显示过滤器属性已应用到具有正确值的 div,并且 hasLayout 为 -1。我可以忽略什么会阻止 IE8 的透明度?

4

1 回答 1

0

对我有用,即使在 IE7/IE8 中:

.transparent {
    zoom: 1;
    filter: alpha(opacity=50);
    opacity: 0.5;
}
于 2012-04-11T16:10:51.250 回答