Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Target IE9 Only via CSS

Just wondering given these IE hacks in my bag of tricks

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

i.e. such as

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

Whether anyone has such a hack for IE9 ? i.e. I'm trying to target IE9 only via CSS ?

like image 253
Tim Avatar asked Jul 11 '11 18:07

Tim


3 Answers

Terrible, but it should work:

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.*/}
like image 114
Jeffrey Karbowski Avatar answered Nov 16 '22 05:11

Jeffrey Karbowski


I suggest using condcoms to feed an IE9 css file or have a conditional html class, similar to:

<!--[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]--> 
like image 33
meder omuraliev Avatar answered Nov 16 '22 03:11

meder omuraliev


IE9 is pretty standards compliant. You shouldn't need to hack it.

Also, you should be using IE conditional comments to load different styles. For IE 9 you would do:

<!--[if IE 9]>
    <!-- conditional content goes here -->
<![endif]-->
like image 4
Radu Avatar answered Nov 16 '22 05:11

Radu