1. ホーム
  2. css

[解決済み】IE11用のCSSハックを書くには?[重複あり]

2022-04-05 15:01:59

質問

IE 11専用にハックしたり、CSSを書いたりするにはどうしたらいいですか?IE11で見栄えが悪いサイトがあります。あちこち検索してみましたが、まだ解決策が見つかりませんでした。

CSSセレクタはありますか?

どのように解決するのですか?

マイクロソフト独自のCSSルールを組み合わせて、IE11のフィルタリングを行う。

<!doctype html>
<html>
 <head>
  <title>IE10/11 Media Query Test</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <style>
    @media all and (-ms-high-contrast:none)
     {
     .foo { color: green } /* IE10 */
     *::-ms-backdrop, .foo { color: red } /* IE11 */
     }
  </style>
 </head>
 <body>
  <div class="foo">Hi There!!!</div>
 </body>
</html>

このようなフィルタが機能するのは、次のような理由からです。

<ブロッククオート

ユーザーエージェントがセレクタを解析できない場合(つまり、有効な CSS 2.1 ではない場合)、セレクタとそれに続く宣言ブロック(ある場合)も無視しなければなりません。

<!doctype html>
<html>
 <head>
  <title>IE10/11 Media Query Test</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <style>
    @media all and (-ms-high-contrast:none)
     {
     .foo { color: green } /* IE10 */
     *::-ms-backdrop, .foo { color: red } /* IE11 */
     }
  </style>
 </head>
 <body>
  <div class="foo">Hi There!!!</div>
 </body>
</html>

参考文献