web-dev-qa-db-ja.com

CSS経由でのみIE9をターゲットにする

これらのIEトリックの私の袋のハックを考えるとちょうど疑問に思う

"\9" - for IE8 and below.
"*" - for IE7 and below.
"_" - for IE6.

すなわち

body { 
    border:2px solid blue;
    border:2px solid yellow \9;
    *border:2px solid green;
    _border:2px solid orange;
}

誰もがIE9のそのようなハックを持っているかどうか?つまり、CSS経由でのみIE9をターゲットにしようとしていますか?

22
Tim

condcoms を使用してIE9 cssファイルをフィードするか、条件付きhtmlクラスを使用することをお勧めします。

<!--[if lt IE 7]> <html lang="en-us" class="no-js ie6"> <![endif]--> 
<!--[if IE 7]>    <html lang="en-us" class="no-js ie7"> <![endif]--> 
<!--[if IE 8]>    <html lang="en-us" class="no-js ie8"> <![endif]--> 
<!--[if gt IE 8]><!--> <html lang="en-us" class="no-js"> <!--<![endif]--> 
29
meder omuraliev

ひどいですが、動作するはずです:

body { 
    border:2px solid blue;
    border:2px solid yellow \9;
    *border:2px solid green;
    _border:2px solid orange;
}
body:nth-child(n) {border:1px solid purple \9; /*Should target IE9 only - not fully tested.*/}
42

このアドレスで: http://www.impressivewebs.com/ie10-css-hacks/ IE10専用のメディアクエリが見つかりました(以下)。

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* IE10-specific styles go here */  
}
4
Val Entin

IE9はかなり標準に準拠しています。ハッキングする必要はないはずです。

また、 IE条件付きコメント を使用して異なるスタイルをロードする必要があります。 IE 9の場合:

<!--[if IE 9]>
    <!-- conditional content goes here -->
<![endif]-->
4
Radu

一部のコメントで述べたように、特にページコード自体を変更できない場合は、特定の状況で条件付きHTMLが機能しない場合があります。そのため、次の回避策があります。

ベーススタイル

.test{color:red;}

ブラウザ固有のオーバーライド

IE <8:html >/**/body .test { color: green; }
IE 9::root .test{color:green \ ;}
IE 8および9:.test{color:green \ ;}
IE 9およびOpera :root .test {color: green\0;}

ノート

上記はbackgroundまたはfont-*では機能せず、\0または\9ハックは一般に不安定です。 CSSハックの完全なリストについては、 http://mynthon.net/howto/-/webdev/CSS-big-list-of-css-hacks.txt を参照してください。

3
Beejor