web-dev-qa-db-fra.com

comment détecter IE et les navigateurs Edge en CSS?

Existe-t-il un moyen standard de détecter IE et les navigateurs Edge en css?)

20
AlreadyLost

Pour IE 9 et inférieur, chargez une feuille de style conditionnelle:

<!--[if IE]>
   <link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->

IE 10 et supérieur ne supporte pas cela, vous devez donc utiliser les requêtes de média:

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
   /* IE10+ CSS */
}

Pour Edge 12-15:

@supports (-ms-accelerator:true) {
   /* Edge 12+ CSS */ 
}

EDIT

Pour Edge 16+

@supports (-ms-ime-align:auto) {
    /* Edge 16+ CSS */ 
}
55
Claire

La réponse acceptée pour Edge ne fonctionne pas dans Edge 16.

Cette alternative fonctionne:

@supports (-ms-ime-align:auto) {
    /* IE Edge 16+ CSS */ 
}

Via https://stackoverflow.com/a/3220295

(Ajouter une nouvelle réponse car je n'ai pas les privilèges de commentaire.)

9
Jarrod Drysdale

Pas sûr de Edge, mais pour cibler 10/11, vous pouvez utiliser:

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  //styles
}
7
JusMalcolm

Pour soutenir Edge 12+ et 16+ en un seul support

@supports (-ms-accelerator:true) or (-ms-ime-align:auto) {
     // your css here
}
0
MR_AMDEV