Comment dois-je cibler uniquement Internet Explorer 10 pour certaines situations, comme Internet Explorer CSS spécifiques ou Internet Explorer code JavaScript spécifique?

Comment dois-je cibler uniquement Internet Explorer 10 pour certaines situations, comme Internet Explorer CSS spécifiques ou Internet Explorer code JavaScript spécifique?

J'ai essayé ceci, mais ça ne fonctionne pas:

<!--[if IE 10]>    <html class="no-js ie10" lang="en"> <![endif]-->
<!--[if !IE]><!--> <html lang="en" class="no-js"> <!--<![endif]-->

Internet Explorer 10 ignore les commentaires conditionnels et utilise le <html lang="en" class="no-js"> au lieu de <html class="no-js ie10" lang="en">.

  • ce type de situation ?
  • Tout type de situation. En particulier, j'ai un CSS situation sur mes mains. J'ai un peu de CSS qui a l'air bien dans webkit, mais hideuse dans IE10.
  • Je pense qu'une meilleure question serait : Comment puis-je obtenir cette CSS de regarder la même chose sur les deux navigateurs ?
  • Que peut-être une autre option, mais techniquement non, parce que je veux être en mesure de cibler IE10 pour certains scripts ainsi.
  • IE10 PP4 prend Toujours en charge de la @cc_on de l'instruction. Donc, pour détecter si IE10 est pris en charge ou pas, vous pouvez utiliser le code suivant: <!--[if !IE]><!--><script>if(/*@cc_on!@*/false){document.documentElement.className+=' ie10';}</script><!--<![endif]-->. (J'ai posté un commentaire, depuis IE est encore en développement, donc il ne sait pas si la dernière version prend en charge cette fonctionnalité)
  • Aussi douloureux que cela puisse être d'entendre cela, vous avez l'air de faire les choses correctement. Publier vos CSS et/ou JavaScript de votre et je suis sûr qu'on peut s'assurer de l'adéquation des solutions de rechange pour la compatibilité inter-navigateur. IE10 ne devrait pas nécessiter une attention particulière.
  • Votre exemple de code va être trompé une fois ie11 est sorti. Version améliorée: <script>if(Function('/*@cc_on return document.documentMode===10@*/')()){document.documentElement.className+=' ie10';}</script> Améliorations: n'a pas besoin de commentaires conditionnels; fonctionne même si le commentaire de décapage de compression/traitement; aucune classe ajoutée pour ie11; travaillera avec ie11 cours d'exécution dans ie10 mode de compatibilité; n'a pas besoin autonome balise de script (peut-être simplement ajoutés à d'autres javascript en tête).
  • L'exemple ci-dessus l'extrait de code: jsbin.com/upofoq/2
  • Plus génériques, la solution est: if(document.documentMode) document.documentElement.className+=' ie'+document.documentMode+'mode'; - qui résout 90% des questions (parfois les modes de compatibilité de l'échec, dans ce cas vous avez besoin d'un autre niveau de fixer sur le dessus de cela).

InformationsquelleAutor trusktr | 2012-03-28