Existe-t-il un moyen standard de détecter IE et les navigateurs Edge en css?)
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 */
}
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.)
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
}
Pour soutenir Edge 12+ et 16+ en un seul support
@supports (-ms-accelerator:true) or (-ms-ime-align:auto) {
// your css here
}