web-dev-qa-db-fra.com

Cibler IE9 uniquement via CSS

Je me demande juste étant donné ces IE hacks dans mon sac de trucs

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

c'est-à-dire comme

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

Si quelqu'un a un tel hack pour IE9? c'est-à-dire que j'essaie de cibler IE9 uniquement via CSS?

22
Tim

Je suggère d'utiliser condcoms pour alimenter un fichier css IE9 ou avoir une classe html conditionnelle, similaire à:

<!--[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

Terrible, mais ça devrait marcher:

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
Jeffrey Karbowski

A cette adresse: http://www.impressivewebs.com/ie10-css-hacks/ J'ai trouvé une requête média spécifique à IE10 uniquement (et ci-dessous):

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

IE9 est assez conforme aux normes. Vous ne devriez pas avoir besoin de le pirater.

En outre, vous devez utiliser commentaires conditionnels IE pour charger différents styles. Pour IE 9 vous feriez:

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

Comme indiqué dans certains commentaires, il arrive que le HTML conditionnel ne fonctionne pas dans une situation spécifique, surtout si vous ne pouvez pas modifier le code de la page lui-même. Voici donc une solution:

Style de base

.test{color:red;}

Remplacements spécifiques au navigateur

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

Remarques

Ce qui précède ne fonctionnera pas pour background ou font-*, et n'importe quel \0 ou \9 les hacks sont généralement instables. Pour une liste complète des hacks CSS, voir http://mynthon.net/howto/-/webdev/CSS-big-list-of-css-hacks.txt .

3
Beejor