1

我正在使用以下代码,对于那些必须在多个浏览器中使背景透明但不是儿童背景的人来说,这看起来很熟悉。它适用于我网站上的基本包装之一。

div#all { 
    background: rgb(255, 255, 255); /* fallback for web browsers that don't support RGBa */
    background: rgba(255, 255, 255, 0.0); /* RGBa with 0.0 opacity */
    /* for ie */
    background: transparent\9; /* for ie - resetting background color hack */
    zoom:1; /* for ie - required for the filters */
    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF, endColorstr=#00FFFFFF); /* for ie 5.5 - 7 */
    -ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF, endColorstr=#00FFFFFF)"; /* for ie 8 */
}

问题是,直到 Win8/IE10(仅限 IE 10 标准。“IE 10 桌面”很好)之前,它都可以正常工作。IE 10 将站点显示为一个纯白色块。如果我删除以下内容,IE 10 可以工作,但旧版本的 IE 会中断。

background: transparent\9; /* for ie - resetting background color hack */

由于 IE 10 忽略了条件语句,如何解决这个问题?

作为参考,我很擅长 php/css/html,但我的 javascript/jquery 不是很热,所以如果这是解决方案,请详细说明。我的网站是 www.waterutilitymanagementservices.com

提前致谢!

4

1 回答 1

1

我遇到了同样的问题,我认为这个问题是IE8hack的反映

最好的解决方案是对 IE8 使用 supurate css,顶部有条件,这可能不会影响其他版本的 IE :)

<!--[if lte IE 8]>
    <link rel="stylesheet" type="text/css" href="ie8-and-down.css" />
<![endif]-->

或者你可以这样尝试

<!--[if lte IE 7]> <html class="ie7"> <![endif]-->  
<!--[if IE 8]>     <html class="ie8"> <![endif]-->  
<!--[if IE 9]>     <html class="ie9"> <![endif]-->  
<!--[if !IE]><!--> <html>             <!--<![endif]-->

你可以有 dirrent 版本的 suppurate 代码

   .element {  
        background: red;  
    }  
    .ie7 .element {  
        background: blue;  
    }  
    .ie8 .element {  
        backgroundt: green;  
    }  
    .ie9 .element {  
        margin-left: yellow;  
    } 
于 2014-02-14T12:28:25.993 回答