私はコメントの条件を機能させようと努力していますが、私が運んでいないので、誰かが私が間違っていることを説明できますか?
ここに私のコードがあります:
<!--[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"いいですか?いいえ同じページをIE1で読み込むと、メッセージが表示されるため"IEはブラウザではありません"
IE10がIEブラウザではないのはなぜだと思いますか?!私はページごとにクロールしてきましたが、見つけたコードのコードに問題はないようです。 。
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*/
}
JavaScriptソリューション:
IE 10は条件ステートメントをサポートしていません。
Internet Explorer 10の条件ステートメント 。条件付きコメントは通常のHTMLコメントとして扱われ、完全に無視されます。
ブラウザ検出の代わりに、 Modernizr などの機能検出ライブラリを使用します。
この コメント で impressivewebs に解決策が見つかりました:
解決策は次のとおりです。
if (Function('/*@cc_on return document.documentMode===10@*/')()) {
alert('IE 10');
} else {
alert('Not IE 10');
}
それ
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タグを使用するブラウザは他にないので、準備は万端です。
最後に、これらのページで詳細を確認してください。
IE 10、11およびupwardは条件付きコメントをサポートしなくなりました。
この回答を参照してください: https://stackoverflow.com/a/22187600/1498739
IE 10は条件付きコメントを削除しました。
このようなjavascriptで同様のことができます:
if ($.browser.msie && $.browser.version === 10) {
// stuff here (like adding an IE10 class to the body or html tag
}
Internet Explorer 9の動作をオプトインするには、ページの上部近くに次のメタタグを追加してください。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
これは、Internet Explorer 10標準および互換モードで条件付きコメントが削除され、HTML5との相互運用性とコンプライアンスが向上したためです。これは、他のブラウザと同様に、条件付きコメントが通常のコメントとして扱われることを意味します。この変更は、Windows Internet Explorer専用に記述されたページ、またはブラウザースニッフィングを使用してInternet Explorerの動作を変更するページに影響を与える可能性があります。