嵌套元素中的 IE 不透明度问题

Posted

技术标签:

【中文标题】嵌套元素中的 IE 不透明度问题【英文标题】:IE Opacity Problem in Nested Elements 【发布时间】:2011-05-21 16:37:14 【问题描述】:

有人找到解决方案了吗? http://seanmonstar.com/post/709013028/ie-opacity-ignores-positioned-children

我已经搜索了几个小时,但找不到解决方法。我知道 filter:inherit 有效,但我实际上需要过滤器来为嵌套元素之一提供不透明度......

【问题讨论】:

【参考方案1】:

看看这个似乎可行的例子:jsfiddle

所以我使用 jquery 淡入和淡出影响不透明度,如果你删除 position:relative;来自#toggle_me;你会发现定位元素有问题,所以解决方法是使用 position:relative;在父级上。

同样在 jquery 代码区域你会看到 this.style.removeAttribute('filter');这会阻止 IE 在文本淡出时奇怪地呈现文本。

【讨论】:

仍然不起作用 - 看看 jsfiddle.net/digitalzoomstudio/yWrFN/2 [我可以用一个没有动画的工作示例] 哦,好吧,这似乎与您最初发布的 seanmonstar.com 链接无关。您只是想让一个完全透明元素的子元素不完全透明。你不能在任何浏览器上这样做。 嘿,伙计,实际上是相反的......它适用于所有浏览器,但即......我认为除了我发布的那些之外,没有其他解决方案。 将您的示例更改为使用标准不透明度:jsfiddle.net/yWrFN/22 并在 Firefox 中查看,您看不到子元素,那么这在其他浏览器中如何工作? 为什么首先接受这个答案,因为它没有解决问题,而是使用客户端脚本来缓解它。问题上的标签没有提到脚本,这应该只使用 CSS 来解决。

以上是关于嵌套元素中的 IE 不透明度问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在下面的元素被动画化时强制 IE 继续对覆盖应用不透明度?

IE8 中的不透明度适用于 <p> 但不适用于 <a>

有没有办法让 IE8 在 `:before` 伪元素上保持不透明度?

ie8中的Tweenmax不透明度

animate() 不适用于 IE 中的不透明度

带有透明 div 的 IE 中的 z-index 问题