うまくつかない
<!--[if !IE]>
働く。それが私の文書にこれがあるからだろうか。
<!doctype html>
<!--[if lt IE 7]> <html class="ie6 oldie"> <![endif]-->
<!--[if IE 7]> <html class="ie7 oldie"> <![endif]-->
<!--[if IE 8]> <html class="ie8 oldie"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="">
<!--<![endif]-->
追加したとき
<!--[if !IE]><!-->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" />
<!--<![endif]-->
何らかの理由で私のヘッダにそれが動作しません。しかし私が加えれば
<!--[if !IE]><!-->
<style>
All my css in here
</style>
<!--<![endif]-->
実際のHTMLページ(ヘッダー内)には動作します。助言がありますか?乾杯
私の質問に更新する
さて、私が<!-->
を削除したとき、私はIEでチェックインしていましたが、これは動作していましたが、今はFFに戻って、no-ie.cssがFFにも適用されました。だから私は<!-->
に戻って/を削除して(そしてそれをメインテンプレートに追加してcmsがそれを再び追加しないようにした)そしてすべてFFで戻って作業しているが、今スタイルシートはIEに適用されている!だから私は試した
<!--[if IE]>
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css">
<![endif]-->
そして
<!--[if !IE]> -->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css">
<!-- <![endif]-->
そしてそれはうまくいきませんでした。基本的に私はこのページを動作させようとしています http://css-tricks.com/examples/ResponsiveTables/responsive.php しかしcssを動かしますスタイルシートにきっとそれは単純になるはずです。何が足りないの?必要がなければ、JQueryを使用したくはありません。乾杯
<!--[if !IE]><!--><script src="zepto.min.js"></script><!--<![endif]-->
<!--[if IE]><script src="jquery-1.7.2.min.js"></script><![endif]-->
注意:これらの条件付きコメントは IE 10以降ではサポートされなくなりました 。
IE以外のブラウザは、コメントタグで囲まれているため、条件文をコメントとして扱います。
<!--[if IE]>
Non-IE browsers ignore this
<![endif]-->
ただし、IEではないブラウザをターゲットにしている場合は、コードの前後に2つのコメントを使用する必要があります。 IEはそれらの間のコードを無視しますが、他のブラウザはそれを通常のコードとして扱います。 IE以外のブラウザをターゲットとするための構文は、次のとおりです。
<!--[if !IE]-->
IE ignores this
<!--[endif]-->
注意:これらの条件付きコメントは IE 10以降ではサポートされなくなりました 。
もし誰かがまだこのページにたどり着いていて、なぜieターゲティングがうまく行かないのか疑問に思うのならば更新。 IE 10以降では、条件付きコメントはサポートされなくなりました。 MSの公式ウェブサイトから:
条件付きコメントのサポートは、Internet Explorer 10の標準では削除され、相互運用性とHTML 5への準拠性が向上したことを示すためのモードが変更されました。
詳細については、こちらを参照してください。 http://msdn.Microsoft.com/ja-jp/library/ie/hh801214(v = vs.85).aspx
Ieを必死にターゲットする必要がある場合は、このjqueryコードを使用してieクラスを追加してから、cssで.ieクラスを使用してieブラウザをターゲットにすることができます。
if ($.browser.msie) {
$("html").addClass("ie");
}
更新:$ .browserはjQuery 1.9以降は利用できません。 1.9以上のjQueryにアップグレードする場合、またはすでにそれを使用している場合は、不足している部分を追加するようにjQueryの後にjQuery移行スクリプトを含めることができます。 jQuery Migrate Plugin
または、このスレッドで回避策を確認してください。 jQuery 1.9.1に更新した後のbrowser.msieエラー
私はそれを使います、そしてそれは働きます:
<!--[if !IE]><!--> if it is not IE <!--<![endif]-->
下位レベルの条件付き「コメント」に対するマイクロソフトが推奨する構文は次のとおりです。
<![if !IE]>
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" />
<![endif]>
これらはコメントではありませんが、正しく機能します。
IE8はメディアクエリでひどいので、<!-- [if !IE] -->
私の完全なcssブロックは次のようになります。
<!-- IE 8 or below -->
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css" href="/Resources/css/master1300.css" />
<![endif]-->
<!-- IE 9 or above -->
<!--[if gte IE 9]>
<link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)"
href="/Resources/css/master1300.css" />
<link rel="stylesheet" type="text/css" media="(max-width: 480px)"
href="/Resources/css/master480.css" />
<![endif]-->
<!-- Not IE -->
<!-- [if !IE] -->
<link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)"
href="/Resources/css/master1300.css" />
<link rel="stylesheet" type="text/css" media="(max-width: 480px)"
href="/Resources/css/master480.css" />
<!-- [endif] -->
IEユーザーをターゲティングする場合:
<!--[if IE]>
Place Content here for Users of Internet Explorer.
<![endif]-->
他のすべてをターゲットにしている場合:
<![if !IE]>
Place Content here for Users of all other Browsers.
<![endif]>
条件付きコメントはInternet Explorerによってのみ検出され、他のすべてのブラウザは通常のコメントとしてそれをスレッド化します。
IE 6,7などをターゲットとするには、Ifステートメントで "Greater Than Equal"または "Lesser Than(Equal)"を使用する必要があります。このような。
より大きいか等しい:
<!--[if gte IE 7]>
Place Content here for Users of Internet Explorer 7 or above.
<![endif]-->
より小さい:
<!--[if lt IE 6]>
Place Content here for Users of Internet Explorer 5 or lower.
<![endif]-->
まず正しい構文は次のとおりです。
<!--[if IE 6]>
<link type="text/css" rel="stylesheet" href="/stylesheets/ie6.css" />
<![endif]-->
この記事を試してみてください。 http://www.quirksmode.org/css/condcom.html および http://css-tricks.com/how -to-an-ie-only-stylesheet /
あなたができるもう一つのこと:
JQueryでブラウザを確認してください。
if($.browser.msie){ // do something... }
この場合、いくつかの要素のCSSルールを変更したり、新しいCSSリンク参照を追加したりできます。
これを読んでください: http://rickardnilsson.net/post/2008/08/02/Applying-stylesheets-dynamically-with-jQuery.aspx
これはIE9までです
<!--[if IE ]>
<style> .someclass{
text-align: center;
background: #00ADEF;
color: #fff;
visibility:hidden; // in case of hiding
}
#someotherclass{
display: block !important;
visibility:visible; // in case of visible
}
</style>
これはIE9以降のものです
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {enter your CSS here}
IEブラウザの場合:
<!--[if IE]>
<meta http-equiv="Content-Type" content="text/html; charset=Unicode">
<![endif]-->
IE以外のすべてのブラウザの場合:
<![if !IE]>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<![endif]>
すべてのIEが8より大きい場合[ORすべての非IEブラウザ:
<!--[if (gt IE 8)|!(IE)]><!--><script src="/_JS/library/jquery-2.1.1.min.js"></script><!--<![endif]-->
条件付きコメントは<!--[if IE]>
で始まるコメントで、これはIE以外のブラウザでは読むことができませんでした。
2011年より条件付きコメントは、その当時にMicrosoftが発表したように、フォームIE 10以降はサポートされていません https://msdn.Microsoft.com/ja-jp/library/ hh801214(v = vs. 85).aspx
条件付きコメントを使用する唯一のオプションは、条件付きコメントをサポートするIE 9としてIEを実行するようにIEに要求することです。
あなただけのためにあなた自身のcssおよび/またはjsファイルを書くことができます、そして、他のブラウザはそれをロードも実行もしません。
このコードスニペットは、IE 10または11に、ie [only.css]およびie [only.js]を実行させて、互換性の問題を解決するためのカスタムコードを含める方法を示しています。
<html>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
<!--[if IE]>
<meta http-equiv="Content-Type" content="text/html; charset=Unicode">
<link rel="stylesheet" type="text/css" href='/css/ie-only.css' />
<script src="/js/ie-only.js"></script>
<![endif]-->
</html>
これは、バージョン6以上のすべてのブラウザ(IE 7、8、9、10など、Chrome 3から現在まで、およびFF ver 3から現在まで)で動作します。
//test if running in IE or not
function isIE () {
var myNav = navigator.userAgent.toLowerCase();
return (myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1) ? true : false;
}
IEブラウザを検出するためにこのJavaScriptを使用しています
if (
navigator.appVersion.toUpperCase().indexOf("MSIE") != -1 ||
navigator.appVersion.toUpperCase().indexOf("TRIDENT") != -1 ||
navigator.appVersion.toUpperCase().indexOf("Edge") != -1
)
{
$("#ie-warning").css("display", "block");
}
ありがとうFernando68、私はこれを使用しました:
function isIE () {
var myNav = navigator.userAgent.toLowerCase();
return (myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1) ? true : false;
}
if(isIE()){
$.getScript('js/script.min.js', function() {
alert('Load was performed.');
});
}
http://tanalin.com/en/articles/ie-version-js/ に記載されているように、IE 10以上で作業している場合条件付きコメントはサポートされなくなりました。別の方法として https://Gist.github.com/jasongaylord/5733469 を参照することもできます。これは、Tridentバージョンもnavigator.userAgentから確認されます。これはブラウザが互換モードで動作している場合にも検証されます。