1

私は次のコードを使用しています。これは、複数のブラウザーで背景を透明にする必要がありましたが、子供の背景を透明にする必要がなかったほぼすべての人にとって見慣れたものです。これは、私のサイトのベース ラッパーの 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 では、サイトが 1 つの真っ白なブロックとして表示されます。以下を削除すると、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

私は同じ問題に遭遇しました。問題はIE8ハックの反映だと思います

最良の解決策は、他のバージョンの IE に影響を与えない可能性がある上部の条件で IE8 の suppurate css を使用することです:)

<!--[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 に答える