Existe-t-il une liste de conditions de navigateur à utiliser, y compris les feuilles de style ?

StackOverflow https://stackoverflow.com/questions/46124

  •  09-06-2019
  •  | 
  •  

Question

J'ai vu des gens faire des choses comme ça dans leur HTML :

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

Cela fonctionne-t-il sur tous les navigateurs modernes et existe-t-il une liste de types de navigateurs qui fonctionneront avec ce type d'instruction if ?

Modifier

Merci Ross.Intéressant à découvrir gt, lt, gte et lte.

Était-ce utile?

La solution

Cela fonctionne sur tous les navigateurs car tout sauf IE voit <!--IGNORED COMMENT-->.Seul IE lit le commentaire s'il contient une clause conditionnelle.Jettes un coup d'oeil à Cet article

Vous pouvez également spécifier quelle version d'IE.Par exemple:

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

Autres conseils

Si vous savez utiliser Javascript, il existe plusieurs options :

navigator.appName
navigator.appVersion 

lien

Ou quelque chose de plus robuste en utilisant une bibliothèque telle que jQuery.

Enfin, vous pouvez utiliser le Détection du navigateur objet de QuirksMode.

Une fois que vous avez le nom et la version du navigateur, vous pouvez ensuite insérer du HTML pour créer un lien vers une feuille de style ou inclure d'autres balises.

Suite à la réponse de Ross, vous ne pouvez cibler le moteur de rendu d'Internet Explorer qu'avec des commentaires conditionnels ;il n'existe pas de construction similaire pour les autres navigateurs.Par exemple, vous ne pouvez pas écrire de commentaires conditionnels ciblant Firefox, mais qui sont ignorés par Internet Explorer.

La façon dont j'obtiens le même effet que votre exemple ci-dessus est de renifler la chaîne de l'agent utilisateur.Je livre ensuite un fichier CSS adapté à ce navigateur.Ce n'est pas parfait car parfois les gens modifient leur chaîne d'agent utilisateur pour des raisons de compatibilité.

L’autre façon de cibler différents navigateurs consiste à utiliser des hacks spécifiques au navigateur.Ceux-ci sont particulièrement méchants car ils reposent généralement sur des bugs dans le navigateur et les bugs sont susceptibles d'être corrigés !

Le reniflage par agent utilisateur est à mon avis la meilleure solution globale.

Les commentaires conditionnels sont uniquement destinés à IE (version 5 et ultérieure).La documentation officielle de Microsoft est ici.Si vous envisagez de les utiliser, la meilleure stratégie consiste à inclure de manière conditionnelle des feuilles de style externes ou des fichiers javascript après vos inclusions normales.Cela signifie que sur IE, votre code spécifique à IE remplacera tout le reste.Sur tout autre navigateur, le code sera traité comme des commentaires et ignoré par l'analyseur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top