web-dev-qa-db-ja.com

Internet Explorer 8がドキュメントモードをエミュレートしても、Internet Explorer 11が条件付きコメントを尊重しないのはなぜですか?

新しい Internet Explorer 11 開発者ツールを使用してドキュメントモードを「8」に切り替えていますが、条件付きコメントは無視されます。つまり、適切に解析されず、通常のコメントのように動作します。したがって、条件付きコメント内の参照ファイルは、ブラウザーによって要求/ロードされません。

なぜこれが起こるのですか?バグですか?

これが本当に修正が必要なバグであると思われる場合は、この問題について報告されているMicrosoftバグレポートでこれを再現できると言ってください。
F12 Developer Toolsを介してドキュメントモードをエミュレートする場合、条件付きコメントは機能しません

更新:この問題は、前述のバグレポートで修正されることが報告されています。

111
Thasmo

According to Jacob Rossi [MSFT]

これはIE11のUpdate 1で修正する必要があります 先週リリース

2014年4月22日に投稿されました。

いくつかのテストを自分で実行すると、これは修正され、すべてがスムーズに実行されたように見えます...これまでに作成された最も素晴らしいブラウザ... Internet Explorer!

28
L84

Windows 7の Internet Explorer 11 でこれを使用してみたところ、使用済みの HTML5 セマンティック要素が Internet Explorer 8 以下で作成されていることを確認した(条件付きコメントを使用)、ブラウザは単にそれらを無視します。 -_-

この機能は Internet Explorer 1 で完璧に機能し、Microsoftはそれをいじる必要がありましたよね?

<!--[if lte IE 8]><script src="ie8-html5.js"></script><![endif]-->

これとは別に、私は実際にInternet Explorerを楽しんでいます。

20
DylRicho

これは私にとってはうまくいき、最もエレガントで簡単な修正のようです( Internet Explorer 1 および Internet Explorer 11-ms-high-contractをサポートする唯一のブラウザだと思います:)

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* IE10+ specific styles go here */
}
17
cmartin

これには別の解決策があります。

Internet Explorer 11 Internet Explorer 8互換モードがオンの場合、文字列「MSIE 8.0」が含まれるため、次のようになります。

(PHPの例)

if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0') !== false) {
    $head[] = sprintf('<link rel="stylesheet" href="ie8.css" />');
}
8

私は最近、同じ問題に遭遇しました。また、いくつかの条件付きコメントが機能することもわかりました。

  • gtおよびltは正常に機能しました
  • gteおよびlteは機能しませんでした

したがって、潜在的な解決策の1つは、gtおよびlt演算子を使用するように条件ステートメントを変更することです。

私がより便利だと思った他の選択肢は、 browserstack のようなサービスを使用することでした。

8
user1429980

私は同じ問題を抱えていました-それは私を一晩中動かしました。 Modernizr を追加し、yepnope.jsを含むすべてのオプションを選択しました。

そのため、私のテストは次のようになります。

Modernizr.load({
            test: Modernizr.canvas,
            nope: ['Content/Site-ie-8.min.css', 'Content/font-awesome-ie7.min.css']
});

この場合、キャンバス(Internet Explorer 9より前ではサポートされていません)をテストするため、条件付きコンテンツを読み込みます。これは、Internet Explorer 11開発者ツールでブラウザーモードを切り替えるときに機能するようになりました。

4
El Kabong

ここでは言及していませんでしたが、この バグレポート では、互換表示設定を変更すると、条件付きコメントが期待どおりに機能することに注意してください。そう:

  1. IE11では、「ツール」をクリックします
  2. 互換表示設定
  3. URLを入力して[追加]をクリックします

私のローカルホストで今うまく動作しているようです。私はこれを広範囲にテストしていませんが、おそらく誰かを助けるでしょう。

3
Just Plain High

'gt'や 'lt'などの条件付きコメントの一部は機能していますが、たとえば<!--[if IE 8]>は機能していません。これは、WebページがInternet browserExplorerブラウザのさまざまなバージョンでどのように見えるかを試してみたい開発者にとって確かに不便ですが、それはすべて悪いニュースではありません。

条件付きコメントは機能しませんが、スタイルシートを一度に1つずつ追加することで、各Internet ExplorerバージョンでWebページの外観をテストできます。Firefox、Chrome、Internet Explorer 10、およびInternet Explorerのスタイルシートがあるとします。 11は「screen.css」と呼ばれ、別のスタイルシートはInternet Explorer 9のみが「screen-ie9.css」と呼ばれ、もう1つはInternet Explorer 8のみが「screen-ie8.css」と呼ばれます。

Internet Explorer 9のみでWebページをテストするには、次のようにします。

<link rel="stylesheet" href="path/css/screen.css"     type="text/css" />
<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

f12開発者ツールの[エミュレーション]セクションで、[ドキュメントモード]を[9]に、[ユーザーエージェント文字列]を[Internet Explorer 9]に設定します。ドキュメントモードはInternet Explorer 9が使用する標準であり、ユーザーエージェント文字列はブラウザー自体です。

PS: 'screen.css'が基本スタイルシートであると想定しているため、後でInternet_Explorer 9の修正を「上書き」するよりも最初に呼び出すのは 'screen-ie9.css '秒。

これにより、Internet Explorer 9ブラウザーでWebページを表示していることを「確信」することができます(引用符なしでWordの「確実」を書くためにVMでテストする必要があります)。 Internet Explorer 9でテストとスタイリングが完了し、Internet Explorer 8でテストしたい場合、これを置き換えることで同じトリックを簡単に実行できます。

<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

これとともに:

<link rel="stylesheet" href="path/css/screen-ie8.css" type="text/css" />

したがって、Microsoft側からのマイナーな不便の問題ですが、新しいF12開発者のツールは多くの素晴らしい機能を提供しているため、それほど大したことではありません。

1
Roben B