Javascript 在本例中,为什么CSS透明性在IE 7/8中不起作用?

Javascript 在本例中,为什么CSS透明性在IE 7/8中不起作用?,javascript,jquery,css,Javascript,Jquery,Css,我正在开发一个jQuery通知栏示例,您可以在这里看到: 但无论出于什么原因,我在IE7和IE8中用来定义透明度的CSS都不起作用。如果您查看IE7/8中的示例,您将看到.png关闭按钮的透明度和重新打开元素的透明度不起作用 我以前使用这段代码在IE中成功地定义了一个元素的透明度,但我不明白为什么在这个例子中它不起作用 我想当我阅读时,我可能偶然发现了一些东西,但是在尝试了hasLayout属性中提到的解决方案之后,我仍然没有任何运气 任何帮助都将不胜感激。如果您需要任何其他详细信息,请告诉我

我正在开发一个jQuery通知栏示例,您可以在这里看到:

但无论出于什么原因,我在IE7和IE8中用来定义透明度的CSS都不起作用。如果您查看IE7/8中的示例,您将看到.png关闭按钮的透明度和重新打开元素的透明度不起作用

我以前使用这段代码在IE中成功地定义了一个元素的透明度,但我不明白为什么在这个例子中它不起作用

我想当我阅读时,我可能偶然发现了一些东西,但是在尝试了hasLayout属性中提到的解决方案之后,我仍然没有任何运气

任何帮助都将不胜感激。如果您需要任何其他详细信息,请告诉我

谢谢

哇。在旧版本的IE中,您无法使用CSS效果的透明度从PNG alpha通道合成透明度。应用样式后,它将停止尝试从图像中执行透明度

是的,真是太差劲了。

哇。在旧版本的IE中,您无法使用CSS效果的透明度从PNG alpha通道合成透明度。应用样式后,它将停止尝试从图像中执行透明度

opacity: 0.50;
filter:alpha(opacity=50);
是的,它真是太差劲了

opacity: 0.50;
filter:alpha(opacity=50);
这将修复IE的不透明度。此处使用50%透明度作为示例值

至于hellobar_close,给它一个背景色,它应该可以工作。IE不支持.png图像的透明度

这将修复IE的不透明度。此处使用50%透明度作为示例值


至于hellobar_close,给它一个背景色,它应该可以工作。IE对.png图像的透明度支持较差。

好的,我相信在上面提供的答案和我自己的一些额外研究的帮助下,我已经回答了我的问题

这个问题实际上有两个部分:

一,。IE中.png关闭按钮的透明度问题-这部分由上面的Pointy回答。根据Pointy,浏览器无法同时管理透明PNG的合成和图像上的任何不透明度效果。换句话说,对于任何给定的像素,您要么从PNG本身获得alpha通道效果,要么从不透明度过滤器获得alpha通道效果,但不能同时获得两者。引用他在

我想要的是.png关闭按钮在正常状态下是半透明的,在悬停状态下是完全不透明的,但显然这在IE中仅使用一个图像和CSS透明度是不可能实现的。所以为了解决这个问题,我只需要制作一个双状态的.png图像来获得一个好的悬停效果,而不是依赖CSS透明度来处理这个组件

二,。“重新打开”按钮的透明度问题-此按钮应该是半透明的,但在IE中不起作用。在自己做了一些广泛的研究后,我发现了以下帖子:。woodstylee在那篇文章中的回答解决了我的问题

由于一些我不完全理解的奇怪IE bug,我需要在应用任何转换/淡入效果之前使用jQuery/javascript声明元素的不透明度

显然,IE中的jQuery淡入淡出/过渡和CSS不透明存在某种冲突。如果其他人对此主题有其他信息,请发布

当我用以下内容更新代码时,我成功地使我的重新打开按钮在IE中显示为半透明

$('#hello_mini').css('filter', 'alpha(opacity=75)');
请注意,上面的代码行需要放在这一行之前:

$('#hello_mini').show('slow');
同样值得注意的是。。。这个IE bug似乎只适用于jQuery显示和隐藏函数。当我将动画切换到slideUp或slideDown时,透明度可以正常工作,无需任何额外的javascript

所以底线是。。。当应用于通过jQuery show和hide设置动画的元素时,IE中的CSS透明度有点奇怪

如果我在我的研究中发现任何其他东西,我会把它贴在这里


好的,我相信在上面提供的答案和我自己的一些额外研究的帮助下,我已经回答了我的问题

这个问题实际上有两个部分:

一,。IE中.png关闭按钮的透明度问题-这部分由上面的Pointy回答。根据Pointy,浏览器无法同时管理透明PNG的合成和图像上的任何不透明度效果。换句话说,对于任何给定的像素,您要么从PNG本身获得alpha通道效果,要么从不透明度过滤器获得alpha通道效果,但不能同时获得两者。引用他在

我想要的是.png关闭按钮在正常状态下是半透明的,在悬停状态下是完全不透明的,但显然这在IE中仅使用一个图像和CSS透明度是不可能实现的。所以为了解决这个问题,我只需要制作一个双状态的.png图像来获得一个很好的悬停效果,而不是依赖CSS 透明度来处理该组件

二,。“重新打开”按钮的透明度问题-此按钮应该是半透明的,但在IE中不起作用。在自己做了一些广泛的研究后,我发现了以下帖子:。woodstylee在那篇文章中的回答解决了我的问题

由于一些我不完全理解的奇怪IE bug,我需要在应用任何转换/淡入效果之前使用jQuery/javascript声明元素的不透明度

显然,IE中的jQuery淡入淡出/过渡和CSS不透明存在某种冲突。如果其他人对此主题有其他信息,请发布

当我用以下内容更新代码时,我成功地使我的重新打开按钮在IE中显示为半透明

$('#hello_mini').css('filter', 'alpha(opacity=75)');
请注意,上面的代码行需要放在这一行之前:

$('#hello_mini').show('slow');
同样值得注意的是。。。这个IE bug似乎只适用于jQuery显示和隐藏函数。当我将动画切换到slideUp或slideDown时,透明度可以正常工作,无需任何额外的javascript

所以底线是。。。当应用于通过jQuery show和hide设置动画的元素时,IE中的CSS透明度有点奇怪

如果我在我的研究中发现任何其他东西,我会把它贴在这里


如果应用样式的元素是具有部分透明像素的PNG,则该选项不起作用。背景色修复适用于.PNG,但当单击“关闭”按钮时,图像周围会出现难看的红色光晕。根据Pointy所说的,也许我只需要制作一个双状态精灵?@Pointy过滤器:alpha修复用于打开按钮,而不是图像。除非你指的是背景色,因为那应该行得通。是的,就我所知,它应该行得通;我不是有意要暗示别的。只是可怜的IE一次只能处理一个alpha信息源。@Pointy啊,是的,这就是你的意思。如果应用样式的元素是一个部分透明像素的PNG,则不起作用。背景色修复适用于.PNG,但是当你点击“关闭”按钮时,图像周围会出现一个难看的红色光晕。根据Pointy所说的,也许我只需要制作一个双状态精灵?@Pointy过滤器:alpha修复用于打开按钮,而不是图像。除非你指的是背景色,因为那应该行得通。是的,就我所知,它应该行得通;我不是有意要暗示别的。只是可怜的IE一次只能处理一个alpha信息源。@Pointy啊,是的,这就是你的意思。如果我理解正确的话,这适用于.png图像以及它不工作的原因。但是,单击“关闭”按钮后出现的“重新打开”框呢?使用我为它准备的CSS值,它应该是半透明的,但我不知道出了什么问题。该部分没有使用任何.png图像。如果我理解正确,这适用于.png图像以及它不起作用的原因。但是,单击“关闭”按钮后出现的“重新打开”框呢?使用我为它准备的CSS值,它应该是半透明的,但我不知道出了什么问题。该部分没有使用任何.png图像。如果这仍然是最佳答案,您可以接受它。别忘了给有用的答案投票;如果这仍然是最好的答案,你可以接受。别忘了给有用的答案投票;