Question

Lorsque IE8 sera publié, le code suivant fonctionnera-t-il pour ajouter une feuille de style conditionnelle?

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

J'ai lu des rapports contradictoires quant à savoir si cela fonctionne avec la version bêta. J'espère que quelqu'un pourra partager son expérience. Merci.

Était-ce utile?

La solution

Cela a fonctionné pour moi - & nbsp; à la fois en mode quirks et en mode de conformité aux normes. Cependant, ne fonctionne pas lors du passage au mode de compatibilité IE8.

Autres conseils

Une chose à noter:

Cela fonctionne, MAIS si vous chargez la page / le site réseau local (par exemple, Intranet) il se chargera en mode IE7 par défaut! (mise à jour - localhost [*] est une spéciale Dans ce cas, le rendu en mode standard)

Cela va à l’encontre de la déclaration originale de MSFT selon laquelle il fallait aller à STANDARDS par défaut.

par exemple

http://127.0.0.1/mysite/mypage.php  <-- IE8 by default (updated!)
http://localhost/mysite/mypage.php  <-- IE8 by default (updated!)
http://machinename/mysite/mypage.php  <-- IE7 by default
http://192.168.100.x/mysite/mypage.php  <-- IE7 by default
http://google.com/  <-- IE8 by default

[*] - Scott Dickens [MSFT] a noté dans un commentaire ici sur le blogue IE que localhost était un scénario spécial dans l'intranet (souvent utilisé pour développer des sites Internet) donc restituerait en mode standard par défaut.

Pour tester le mode d'affichage d'une page dans IE8, vous pouvez utiliser la vérification des outils de développement ou utiliser ce code de bookmarklet (ne fonctionne que dans IE8):

javascript:
var vMode=document.documentMode;
var rMode='IE5 Quirks Mode';
if(vMode==8){
  rMode='IE8 Standards Mode';
} else if(vMode==7){
  rMode='IE7 Strict Mode';
}
alert('Rendering in: '+rMode);

Outils / Paramètres d'affichage de compatibilité décochez-les tous

Merci pour votre aide. J'ai découvert la solution, apparemment le problème était que chaque feuille de style utilise son propre attribut title. Une fois, j'ai enlevé le titre de tous sauf la feuille de style principale, aucun problème.

C’est un problème étrange, propre à IE8 - et même si on m’a dit que son fonctionnement était supposé fonctionner de cette manière, quelque chose à voir avec "Préférences de styles" - cela ne sert qu'à créer des problèmes puisque la solution nécessite de supprimer le titre, ce qui pourrait être utile lors de la création de scripts, etc. - lorsque vous devez appeler la feuille de style.

Quoi qu’il en soit, je ne sais pas s’il s’agit d’un bogue, ou de la supposer être ainsi, mais j’espère que Microsoft approfondira ses recherches.

Merci

Pourquoi même avoir la peine d'écrire une feuille de style distincte pour IE8?

Si vous avez déjà débogué pour IE7, vous pouvez forcer IE8 en mode de compatibilité et afficher ainsi votre code comme si IE8 était IE7.

Tout ce que vous avez à faire, c’est de placer ceci DROIT AU-DESSOUS de la balise ouvrante. Partout ailleurs et cela ne fonctionnera pas.

Et puis cela représente une demi-heure ou moins de travail en moyenne par projet, sans débogage intense pour IE8!

Même Msn.com fait cela - genre d'ironie, hein?

A récemment écrit un article sur son blog: http://blog.sankhomallik.com/2009/11/16/stop-wasting-time-debugging- sur-ie8-quand-vous-ne-devez-pas-ou-obtenir-ie8-à-se comporter-comme-ie7 /

IE8 rend le rendu assez agréable par rapport à IE7, j'ai des feuilles de style pour IE6, IE7 et IE8; Au début, je pensais que les commentaires conditionnels ne fonctionnaient pas pour IE8 après un peu d’expérimentation. j'avais une classe comme

.niceclass {certains: propriétés; plus: propriétés;}

cela a fonctionné seulement si je l'ai changé pour quelque chose comme:

.parentclass .niceclass {certains: propriétés; autres: propriétés;} ou

#parentselector .niceclass {some: properties; more: properties;}

btw dans mon css IE8-only, je n’ai qu’une règle primordiale, le reste est rendu presque comme un firefox, bien que cela ne me fasse pas quitter FF quand même!.

Pour ma part, je voulais utiliser des bordures arrondies en css. IE8 sur Vista ne supporte pas un tel. Et comme les graphismes étaient conçus de manière à ce que les bordures arrondies présentent également une belle ombre arrondie, la page paraissait terrible dans IE8.

J'ai essayé d'utiliser des commentaires conditionnels, mais en vain IE8 n'évaluait pas l'expression if si IE et n'incluait donc pas la feuille de style externe.

Ensuite, j’ai envisagé de le mettre en mode quirks / compatiblity. Cependant, cela ne fonctionnait toujours pas, car les hacks CSS que j’avais utilisés ne fonctionnaient plus pour IE8.

Enfin, j'ai trouvé un hack CSS fonctionnel qui rendra la page correctement en mode de compatibilité.

* + html #test[id] { color:lime } 

Maintenant, je ne sais pas si cela fonctionne pour IE7 ou une version antérieure, vous devez donc disposer d'au moins trois hacks différents pour chaque version d'IE que vous souhaitez prendre en charge, par exemple.

* + html #test,
    html+body #test,
    * html body #test
    { color:lime }

Je me demande quelle sera la prochaine régression d’Internet Exploiter.

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