CSS滤镜-有时有效,有时无效?

3
我快要因为这个问题抓狂了。
这里有一段完全正常运行的 CSS 代码块:
#admin .block.mode.off
{
    opacity: 0.25;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=25)";
    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25);
}

同时...Internet Explorer 8 对我在这里的过滤声明毫不关心:
#admin .drop .tabs
{
    margin-bottom: 12px;
}
#admin .drop .tab
{
    margin-right: 4px;
}
#admin .drop .tab.off
{
    cursor: pointer;
    opacity: 0.5;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=50)";
    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
}
#admin .drop .tab.off:hover
{
    text-shadow: 0px 0px 4px #fff;
}
#admin .drop .tab.on
{
    cursor: default;
    text-shadow: 0px 0px 4px #fff;
    -ms-filter: "progid:DXImageTransform.Microsoft.Glow(color=#fff, strength=4)";
    filter: progid:DXImageTransform.Microsoft.Glow(color=#fff, strength=4);
}

我的文档在IE8标准模式下显示,我认为开发者工具可能有问题,因为功能块在CSS选项卡中显示为一堆金枪鱼。
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=25); opacity: 0.25

有人有什么想法吗?
1个回答

1
根据这个答案,你应该尝试给#admin .drop .tab添加hasLayout。我通常使用zoom:1来实现,但是看起来IE8不再允许它触发hasLayout了,我们应该使用height:1%(或者任何高度声明除了auto)。

1
height:1% 没有起作用,但是您提供的链接中有 display:inline-block,非常有效。谢谢 :) - unrelativity
这很好知道。根据微软的说法,IE8不应该需要这种类型的黑客攻击,而且我在网上也几乎找不到更新的报告。 - user241244

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接