Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html IE8不透明度问题_Html_Css_Internet Explorer 8 - Fatal编程技术网

Html IE8不透明度问题

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;

我知道这里有无数关于IE不透明度问题的帖子。我已经浏览了几乎所有的问题,并尝试了几乎所有我设法找到的可用方法,但没有任何效果

最奇怪的是,不透明问题是一个孤立的案例,只发生在IE8上;IE7没有任何问题。在继续讨论我面临的问题之前,让我向您展示我正在开发的单页HTML站点中的标记示例:

这是控制相关div不透明度的CSS:

#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过滤器根本不起作用。我怀疑这个问题的答案将与我在这个问题上给出的答案类似:这听起来是一个非常有希望的建议。我一定要试一试:)