Frage

Wenn IE8 veröffentlicht wird, wird der folgende code funktioniert zum hinzufügen einer bedingten stylesheet?

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

Ich habe gelesen, widersprüchliche Berichte, ob dies funktioniert mit der beta.Ich hoffe jemand kann Ihre Erfahrung teilen.Vielen Dank.

War es hilfreich?

Lösung

Es funktionierte für mich - sowohl im Quirks-Modus und in der Einhaltung von Standards-Modus. Es wird jedoch nicht Arbeit, wenn zu IE8 Kompatibilitätsmodus umgeschaltet wird.

Andere Tipps

Eine Sache zu beachten:

Es funktioniert, ABER wenn Sie das laden der Seite/Website lokalen Netzwerk (z.B.Intranet) Sie wird die Last in IE7 Modus durch Standard! (update - localhost[*] ein Sonderfall ist, dass tut Rendern im standards-Modus)

Dies geht gegen MSFT ' s original statement of going STANDARDS standardmäßig.

z.B.

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] bemerkte in einem Kommentar hier auf dem IE Blog dass localhost wurde ein spezielles Szenario im Intranet (oft genutzt, um die Entwicklung von Internet-sites), so würde die Darstellung im Standards-Modus standardmäßig.

Um zu testen, welche-Modus können Sie eine Seite in IE8 ist wirklich rendering, die Sie verwenden können, prüfen Sie die Entwickler-tools oder die Nutzung dieser bookmarklet code (funktioniert nur in 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);

Werkzeuge / Einstellungen der Kompatibilitätsansicht deaktivieren sie alle

Vielen Dank für Ihre Hilfe. Ich habe die Lösung gefunden, offenbar war das Problem jeden Stylesheet mit einem eigenen Titel-Attribut verwenden. Sobald ich den Titel alle nahmen aber die Hauptstylesheet aus, kein prob.

Dies ist eine seltsame Frage zu IE8 einzigartig - und obwohl ich seinem gesagt haben sollte, so arbeiten, etwas mit „Stylesheet-Preference“ zu tun - es dient nur Probleme zu schaffen, da die Lösung, die Sie den Titel entfernen erfordert die könnte hilfreich sein, wenn Scripting usw. -., wenn Sie brauchen das Stylesheet nennen

Auf jedem Fall nicht sicher, ob dies ein Fehler ist oder sein sollte, so sein, aber ich hoffe, Microsoft untersucht weiter.

Danke

Warum sich die Mühe auch ein separates Stylesheet für IE8 zu schreiben?

Wenn Sie bereits für IE7 gedebuggt haben, können Sie IE8 in Kompatibilitätsmodus erzwingen, und damit der Code angezeigt werden, als ob IE8 IE7 waren.

Alle musst du dies tun, ist direkt unterhalb der Öffnung head-Tag gesetzt. Überall sonst, und es wird nicht funktionieren.

Und das ist dann eine halbe Stunde oder so weniger Arbeit im Durchschnitt pro Projekt, kein intensives Debuggen für IE8 erforderlich!

Auch Msn.com tut dies - eine Art ironisch, eh

?

schrieb einen Blog-Post über sie kürzlich: http://blog.sankhomallik.com/2009/11/16/stop-wasting-time-debugging- on-IE8-when-you-dont-haben-zu-oder-get-IE8-to-verhalten-like-iE7 /

IE8 macht ziemlich nett im Vergleich zu IE7, ich habe Sheets für IE6, IE7 und IE8; Zuerst dachte ich, bedingte Kommentare wurden für IE8 nach einem wenig Experimentieren nicht funktionieren i wurden einige Regeln nicht gefunden von IE8 angewandt beeing nur, weil ich zuerst die Vorfahren oder Elternklasse setzen benötigt, z.B. Ich hatte eine Klasse wie

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

es funktioniert nur , wenn ich es für so etwas wie geändert:

.parentclass .niceclass {some:properties;more:properties;} oder

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

btw in meinem IE8-only css ich nur eine goldene Regel haben, der Rest fast wie Firefox gemacht, obwohl das ist macht mich FF nicht verlassen sowieso!.

Für meinen Teil wollte ich mit CSS abgerundeten Grenzen verwenden. IE8 auf Vista nicht unterstützt so. Und da die Grafiken waren so, dass die abgerundeten Ränder als auch einen schönen abgerundeten Schatten zeigen würden, sah die Seite allerdings nicht in IE8.

habe ich versucht, bedingte Kommentare verwenden, aber ohne Erfolg, IE8 würde, wenn IE Ausdruck nicht auswerten und somit nicht das externe Stylesheet enthalten würde.

Dann hatte ich einen Blick auf sich in Macken / Kompatibilitätsmodus setzen, dies jedoch noch nicht, wie das CSS-Hacks funktioniert ich benutzt hatte, nicht mehr für den IE8 nicht funktionierte.

Zuletzt aber am wenigsten fand ich einen Arbeits CSS-Hack, den die Seite korrekt, wenn im Kompatibilitätsmodus übertragen wird.

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

Nun, ich weiß nicht, ob dies für IE7 funktioniert oder unten, so dass Sie mindestens drei haben verschiedene Hacks für jede IE lösen Sie unterstützen möchten, e.e..

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

Ich frage mich, was die nächste Regression des Internet Exploiter wird für uns schauen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top