0

ie6 および ie7 とは異なるスタイルを宣言したいのですが、IE7 によって IE6 として認識される css の条件です。私はXPとエクスプローラー7を使用しています。これは私が使用するコードです:

<!--[if !IE]>

#mainDiv{text-align:-moz-center;}

#skyBanner {top:0px;left:0px; position:fixed;visibility:hidden;}

<![endif]-->     

<!--[if lt IE 7]>

body > #skyBanner {  position: fixed;}

#skyBanner {position:absolute;visibility:hidden;

left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );

top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );

}

<![endif]-->

<!--[if IE 7]>

#skyBanner {position:fixed;visibility:hidden;

}    
<![endif]--> 

私の間違いは何ですか?

4

3 に答える 3

3

あなたの!IEコメントは間違っており、スタイル タグがありません。これがまさに HTML に存在する方法である場合、それが問題です。これが CSS ファイルにある場合、その場所で条件付きコメントを使用することはできません。

訂正:

<!--[if !IE]>-->
<style type="text/css" media="screen">
    #mainDiv {text-align:-moz-center;}
    #skyBanner {top:0px;left:0px; position:fixed;visibility:hidden;}
</style>
<!--<![endif]-->

<!--[if lt IE 7]>
<style type="text/css" media="screen">
    body > #skyBanner {  position: fixed;}
    #skyBanner {position:absolute;visibility:hidden;
    left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px');
    top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
    }
</style>
<![endif]-->

<!--[if IE 7]>
<style type="text/css" media="screen">
    #skyBanner {position:fixed;visibility:hidden;}
</style>
<![endif]-->

繰り返しますが、現在書かれているように、ブラウザーは!IEコードを認識していません。

また、他の条件を正しく書いたかどうかもわかりません。body > #skyBanner {position: fixed;}" " 条件の下に " " がありますが、私の知る限り、IE6以前はif lt IE 7この CSS セレクターをサポートしていません。

したがって、私が説明した問題はどれも、IE6 および IE7 の問題につながる可能性があります。

于 2009-07-12T10:57:39.700 に答える
3

CSS では条件付きコメントを使用できません。HTMLのみ。したがって、さまざまなブラウザーの宣言をさまざまなファイルに入れ、それらに条件付きコメントをいくつか付ける必要があり<link>ます。

だからもっと何かの線に沿って

<html>
  <head>
    <!--[if !IE]>
      <link rel="stylesheet" type="text/css" href="style_non_ie.css">
    <![endif]-->
    ...
  </head>
</html>
于 2009-07-12T10:42:01.057 に答える
0

少し違う方法で行う必要があります。コメントを使用し、ブラウザー固有の CSS ファイルへのリンクを囲みます。このように動作するはずです:

<!--[if !IE]>
<link href="nonIE.css" rel="stylesheet" type="text/css">
<![endif]-->     

<!--[if lt IE 7]>
<link href="IE6.css" rel="stylesheet" type="text/css">
<![endif]-->

<!--[if IE 7]>
<link href="IE7.css" rel="stylesheet" type="text/css">
<![endif]-->

リンクの代わりにタグを使用することもでき<style>ますが、これは悪い方法です。

于 2009-07-12T10:45:38.320 に答える