Html IE8不透明度问题
我知道这里有无数关于IE不透明度问题的帖子。我已经浏览了几乎所有的问题,并尝试了几乎所有我设法找到的可用方法,但没有任何效果 最奇怪的是,不透明问题是一个孤立的案例,只发生在IE8上;IE7没有任何问题。在继续讨论我面临的问题之前,让我向您展示我正在开发的单页HTML站点中的标记示例: 这是控制相关div不透明度的CSS:Html IE8不透明度问题,html,css,internet-explorer-8,Html,Css,Internet Explorer 8,我知道这里有无数关于IE不透明度问题的帖子。我已经浏览了几乎所有的问题,并尝试了几乎所有我设法找到的可用方法,但没有任何效果 最奇怪的是,不透明问题是一个孤立的案例,只发生在IE8上;IE7没有任何问题。在继续讨论我面临的问题之前,让我向您展示我正在开发的单页HTML站点中的标记示例: 这是控制相关div不透明度的CSS: #home, #services, #freeport, #about-us, #advantage, #contact{ opacity:0;
#home, #services, #freeport, #about-us, #advantage, #contact{
opacity:0;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
width:400px;
zoom:1;
}
这是我用来控制不透明度设置的JQUERY:
$(document).ready(function(){ //fades in the menu div first followed by the home div
(function _loop( nodelist ) {
$( nodelist.shift() ).fadeTo( 2400, 1, function() {
_loop( nodelist );
});
}( ["#menu", "#home"] ));
$("#about-us-button").click(function(){ //upon clicking the home button, fades in the home div and fades out the rest of the divs
$("#about-us").fadeTo(900, 1);
$("#home, #freeport, #advantage, #services, #contact").fadeTo(1000, 0);
});
});
注意:我只展示了单击“关于我们”按钮时“关于我们”div是如何淡入的;其余部分的工作方式相同。也省略了HTML,因为它是一个非常直接的DIV容器,其中包含一些文本,就是这样
因此,应用上面提到的CSS样式,我成功地使div在除IE8之外的所有浏览器(包括IE7)中的正确实例中出现
最让我困惑的是,这个过滤器在IE7中工作,但是-ms过滤器——据说是IE8特有的——却无法工作。我已经读过关于HasLayout的问题,并且应用了所有的方法都没有用。我还确保了-ms过滤器出现在过滤器之前,但这也不起作用
我还使用meta-tag方法让IE8模拟IE7,但不幸的是,这也失败了
应该注意的是,我已经将其标记为HTML5,在遇到这个问题后,我将其标记为XHTML1.0过渡版和HTML4.0,但没有任何效果,甚至IE8也没有标记为IE7方法
有人知道怎么解决这个问题吗?提前谢谢各位 不久前我遇到了类似的问题。我不记得确切的细节,但我相信发生的事情是jQuery将在元素级别设置一个不透明度值,在淡入时不断更改它——然后一旦淡入完成,该属性将保留在那里,但为空,覆盖CSS文件不透明度。您应该能够使用Firebug或Chrome中的元素检查器对其进行双重检查 我相信这就是我用来修复错误的方法,当jQuery完成时,它会强制jQuery清除该属性,这样在我的CSS文件中指定的不透明属性就可以生效。当然,调整它以适合您的代码
$("#darkbg, #popup-movie-panel").fadeIn(300, function(){
if(jQuery.browser.msie) {
this.style.removeAttribute('filter');
}
})
您是否使用类似IETester的工具来测试IE8?你能在或上重现问题吗?我可以验证问题发生在正版IE8上,所以问题不是你的测试工具造成的。是的,这个问题确实发生在IE8上,但在IE7上没有问题。真奇怪的是-ms过滤器根本不起作用。我怀疑这个问题的答案将与我在这个问题上给出的答案类似:这听起来是一个非常有希望的建议。我一定要试一试:)