25

私はコメント条件を機能させようとして自分自身を狂わせてきましたが、運がありません。誰かが私が間違っていることを説明できますか?

これが私のコードです:

        <!--[if IE 10]>
            IE IS VERSION 10<br />
        <![endif]-->
        <!--[if !IE]><!-->
            Browser is not IE
        <!--<![endif]-->
        <!--[if lt IE 9]>
            IE IS LESS THAN VERSION 9<br />
        <![endif]-->

起こっていることはイライラするほど矛盾しています。上記のコードを含むページをIE8で読み込むと、 「IE IS LESS THAN VERSION 9」というメッセージが表示されます。いいえ、 IE10で SAME PAGE をロードすると、 「ブラウザは IE ではありません」というメッセージが表示 されるためです。

なぜ IE10 は IE ブラウザーではないと考えるのですか?! ページを次々とクロールしてきましたが、見つけたコードに問題はないようです。

4

5 に答える 5

23

CSS のみのソリューションに誰も追加していないことに驚いています。CSS のみを使用する場合は、次のようなステートメントを使用します。

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* Put your IE-only styles here. Works for IS 10 & IE 11*/
}

このように、jquery や HTML マークアップに頼る必要はありません。それをcssに投稿するだけで、準備完了です。

さて、それはハックですか?おそらく。これは microsoft ハイ コントラスト タグの使用に依存しますが、ms タグを使用するブラウザーは他にないため、問題はありません。

最後に、詳細については次のページをご覧ください。

ブログ投稿

コントラスト タグの MS サイト

于 2016-12-15T16:49:27.343 に答える
3

IE 10、11 以降では、条件付きコメントがサポートされなくなりました。

この回答を参照してください: https://stackoverflow.com/a/22187600/1498739

于 2016-03-04T11:34:57.030 に答える
2

Internet Explorer 9 の動作をオプトインするには、ページの上部近くに次のメタ タグを追加してみてください。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

これは、相互運用性と HTML5 への準拠を改善するために、Internet Explorer 10 の標準モードと互換モードで条件付きコメントが削除されたためです。これは、他のブラウザーと同様に、条件付きコメントが通常のコメントとして扱われるようになったことを意味します。この変更は、Windows Internet Explorer 専用に作成されたページ、またはブラウザー スニッフィングを使用して Internet Explorer での動作を変更するページに影響を与える可能性があります。

于 2014-10-31T02:22:00.047 に答える
0

IE 10 では条件付きコメントが削除されました。

次のように、JavaScriptで同様のことができます。

if ($.browser.msie && $.browser.version === 10) {
    // stuff here (like adding an IE10 class to the body or html tag
}
于 2013-10-21T18:33:07.440 に答える