jeudi 9 avril 2009

Compatibilité Internet Explorer 8

Depuis la sortie d'IE 8, l'équipe de Microsoft a fait en sorte que son fureteur devienne plus strict dans l'interprétation du code en suivant un peu plus les recommandations du W3C, notamment en ce qui a trait à la conformité au CSS 2.1.

Dans certains cas, les pages qui étaient rendues correctement sous IE7 deviennent altérées sous la nouvelle version. On peut corriger ce comportement de deux façons.

Option 1
Dans la balise HEAD, ajouter le code HTML suivant pour forcer IE à émuler l'interprétation du code comme le faisait IE 7 :
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7";
Pour qu'il prenne effet, il est préférable de le placer à l'intérieur de HEAD, immédiatement après la balise TITLE mais avant les autres META.
<head>
<title>Code 18</title>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7";
...
Option 2
Ajouter un header HTTP au niveau serveur.

Dans le fichier Web.config de IIS :

<add name="X-UA-Compatible" value="IE=EmulateIE7" />

Pour Apache, assurez-vous que mod_headers.so soit chargé dans httpd.conf (en retirant le # devant la ligne), ensuite, faites le suivre la déclaration du header. Toutes les pages du serveur incluront cette entête.

LoadModule headers_module modules/mod_headers.so
Header set X-UA-Compatible "IE=EmulateIE7"

Pour restreindre son application un répertoire du site, insérez-le à l'intérieur de <location></location>.

4 modes possibles
  • IE=5 : mode "Quirks", compatibilité Internet Explorer 5
  • IE=7 pour suivre les standards de la version 7
  • IE=8 tient compte des dernières fonctionnalités ajoutées, y compris la mise en page conforme au CSS 2.1
  • IE=edge choisit le meilleur mode possible selon la version la plus récente disponible. Idéal pour fins de tests mais non conseillé en production.
Plusieurs modes de compatibilité peuvent être déclarés en les séparant par un point-virgule : content="IE=7; IE=8". De plus, les alternatives "IE=EmulateIE7" et "IE=EmulateIE8" peuvent être utilisées pour ignorer la déclaration du DOCTYPE, même si celle-ci est présente.

Aucun commentaire:

Publier un commentaire