27

友達、IE9の特定のCSSルールを定義するのを手伝ってください。たとえば、このように

/* IE 6 fix */
* html .twit-post .delete_note a { background-position-y: 2px; }
* html .twit-post .delete_note a:hover { background-position-y: -14px; }
4

8 に答える 8

34

受け入れられた回答はIE10もターゲットにしていることに注意してください。そのため、より完全なリストについては、次のとおりです。

IE6

* html .ie6 {property:value;}

また

.ie6 { _property:value;}

IE7

*+html .ie7 {property:value;}

また

*:first-child+html .ie7 {property:value;}

IE 6 および 7

@media screen\9 {
    .ie67 {property:value;}
}

また

.ie67 { *property:value;}

また

.ie67 { #property:value;}

IE 6、7、および 8

@media \0screen\,screen\9 {
    .ie678 {property:value;}
}

IE8

html>/**/body .ie8 {property:value;}

また

@media \0screen {
    .ie8 {property:value;}
}

IE 8 標準モードのみ

.ie8 { property /*\**/: value\9 }

IE 8、9、および 10

@media screen\0 {
    .ie8910 {property:value;}
}

IE9のみ

@media screen and (min-width:0) and (min-resolution: .001dpcm) { 
 // IE9 CSS
 .ie9{property:value;}
}

IE 9 以上

@media screen and (min-width:0) and (min-resolution: +72dpi) {
  // IE9+ CSS
  .ie9up{property:value;}
}

IE 9 および 10

@media screen and (min-width:0) {
    .ie910{property:value;}
}

IE10のみ

_:-ms-lang(x), .ie10 { property:value\9; }

IE10以上

_:-ms-lang(x), .ie10up { property:value; }

また

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
   .ie10up{property:value;}
}

IE 11 (およびそれ以降..)

_:-ms-fullscreen, :root .ie11up { property:value; }

Javascript の代替

モダニズム

Modernizr はページの読み込み時にすばやく実行され、機能を検出します。次に、結果を使用して JavaScript オブジェクトを作成し、html 要素にクラスを追加します。

ユーザーエージェントの選択

Javascript:

var b = document.documentElement;
        b.setAttribute('data-useragent',  navigator.userAgent);
        b.setAttribute('data-platform', navigator.platform );
        b.className += ((!!('ontouchstart' in window) || !!('onmsgesturechange' in window))?' touch':'');

html(例)要素に以下を追加します。

data-useragent='Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)'
data-platform='Win32'

非常に的を絞った CSS セレクターを許可します。

html[data-useragent*='Chrome/13.0'] .nav{
    background:url(img/radial_grad.png) center bottom no-repeat;
}

脚注

可能であれば、ブラウザのターゲティングを避けてください。特定した問題を特定して修正します。プログレッシブ エンハンスメントグレースフル デグラデーションをサポートします。そのことを念頭に置いて、これは「理想的な世界」のシナリオであり、実稼働環境で常に得られるとは限りません。上記は、いくつかの適切なオプションを提供するのに役立つはずです。


帰属/必読

于 2015-01-07T08:41:00.477 に答える
24

CSS スタイルを先頭に追加できます

:root

次のように、IE9固有にします。

:root #element { color:pink \0/IE9; }  /* IE9 */
于 2011-12-09T15:25:17.563 に答える
19

IE 条件付きコメントを使用します。

<!--[if ie 9]>
    your stuff here
<![endif]-->
于 2011-09-09T16:50:05.707 に答える
2

IE6用の特定のコードを書きたいが、代わりにIE9と言った場合と同じことができると思います:)

<!--[if IE 9]>
Special instructions for IE 9 here
<![endif]-->
于 2011-09-09T16:50:59.967 に答える
1

条件付き CSS を使用します: (HTML の の上にコードを配置する<head>と、IE9 がその余分な CSS ファイルを読み取ります)

<!--[if (gte IE 9)|!(IE)]><!-->
place the link to the CSS file here
<![endif]-->

これは、アプローチがクラスのハックではなく、新しい CSS ファイルを使用することを意味します。これにより、CSS が有効であることが保証されます。

于 2011-09-09T16:51:07.313 に答える
-6

IE9 をターゲットにする必要はありません。最新の css を処理することができ、ハッキングされるべきではありません。これは時代遅れの開発方法です。

于 2011-09-09T18:12:34.033 に答える