Internet Explorer固有のCSSやInternet Explorer固有のJavaScriptコードなどの特定の状況でInternet Explorer 10のみをターゲットにするにはどうすればよいですか?
私はこれを試しましたが、うまくいきません:
<!--[if IE 10]> <html class="no-js ie10" lang="en"> <![endif]-->
<!--[if !IE]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
Internet Explorer 10は条件付きコメントを無視し、<html lang="en" class="no-js">
代わりにを使用します<html class="no-js ie10" lang="en">
。
@cc_on
ステートメントをサポートしています。したがって、IE10がサポートされているかどうかを検出するには、次のコードを使用できます<!--[if !IE]><!--><script>if(/*@cc_on!@*/false){document.documentElement.className+=' ie10';}</script><!--<![endif]-->
。(IEはまだ開発中であるため、コメントとして投稿しました。最終リリースもこの機能をサポートしているかどうかは不明です)
<script>if(Function('/*@cc_on return document.documentMode===10@*/')()){document.documentElement.className+=' ie10';}</script>
改良:条件付きコメントを必要としません。コメントが圧縮/処理を取り除く場合でも機能します。ie11に追加されたクラスはありません。ie10互換モードで実行されているie11で動作します。スタンドアロンスクリプトタグは必要ありません(他のJavaScriptに追加することができます)。
if(document.documentMode) document.documentElement.className+=' ie'+document.documentMode+'mode';
です。-問題の90%を解決します(互換モードが失敗する場合があります。その場合、その上に別のレベルの修正が必要です)。