CSS Hack für den IE 7
Chris
- css
0 Cheatah0 Chris0 Cheatah0 Daniel unreg
0 svg4you
0 Daniel unreg0 Chris
0 Gunnar Bittersmann
Hallo zusammen,
ich benötige einen CSS Hack, der wirklich nur den Internet Explorer 7 anspricht.
Habe mich bereits auf unterschiedlichsten Seiten über IE7-Hacks informiert und auch schon einiges ausprobiert.
Leider muss ich sagen, dass nichts davon funktioniert hat.
Problem war, dass entweder alle Versionen des Internet Explorers (also Version 7 mit eingeschlossen) angesprochen wurden, oder keine Version des Internet Explorers.
Habe gelesen, dass angeblich der Selektor "* html" nur bis zur Version 6 des IE behandelt wird, leider werden entsprechend gekennzeichnete Formatierungen auch im IE 7 angezeigt.
Vielleicht kann mir hier jemand weiterhelfen. Bin für jeden Tipp dankbar.
Mit freundlichem Gruß
Chris
Hi,
ich benötige einen CSS Hack, der wirklich nur den Internet Explorer 7 anspricht.
*+html
Cheatah
Hallo Cheatah,
*+html
habe ich auch schon ausprobiert. Funktioniert allerdings auch nicht, zumindest nicht mit einem einzigen CSS-File.
Habe das File jetzt nochmal angepasst. Der entsprechende Codeschnipsel sieht nun so aus:
/* Firefox und andere Browser */
#navigation {
background : #A91B56 url(../img/navi_head.gif) no-repeat;
float : left;
margin : 0px 0px 0px 10px;
width : 160px;
}
/* IE 6 und niedrigere Versionen */
* html #navigation {
background-color: #000000;
margin : 0px 0px 0px 5px;
width : 160px;
}
/* IE 7 */
*+html #navigation {
background-color: #00FF00;
margin : 0px 0px 0px 10px;
width : 160px;
}
Ergebnis:
Was mach ich jetzt?
Gruß
Chris
Hi,
Was mach ich jetzt?
den Quirks-Mode verlassen.
Cheatah
Hey Cheatah,
den Quirks-Mode verlassen.
sorry, aber ich steh grad auf dem Schlauch, wie verlasse ich den Quirks-Mode?
Gruß
Chris
Hi,
sorry, aber ich steh grad auf dem Schlauch, wie verlasse ich den Quirks-Mode?
Tür auf und raus gehen. Alternativ fütterst Du eine Suchmaschine - beispielsweise auch die des Archivs dieses Forums - mit dem Begriff. Ein _bisschen_ Eigenleistung erwarte ich schon noch von Dir.
Cheatah
Hi,
Tür auf und raus gehen. Alternativ fütterst Du eine Suchmaschine - beispielsweise auch die des Archivs dieses Forums - mit dem Begriff. Ein _bisschen_ Eigenleistung erwarte ich schon noch von Dir.
dachte du verrätst mir die Lösung gleich hier.
Ich sitz nämlich schon seit Stunden an diesem Problem.
Trotzdem danke, ich werd's dann hoffentlich voll hinbekommen.
Gruß
Chris
Hi,
Tür auf und raus gehen. Alternativ fütterst Du eine Suchmaschine - beispielsweise auch die des Archivs dieses Forums - mit dem Begriff. Ein _bisschen_ Eigenleistung erwarte ich schon noch von Dir.
dachte du verrätst mir die Lösung gleich hier.
Ich sitz nämlich schon seit Stunden an diesem Problem.
Trotzdem danke, ich werd's dann hoffentlich voll hinbekommen.Gruß
Chris
Okay, offensichtlich hatte ich ganz einfach den Doctype vergessen.
Könnt ihr mir noch sagen, wie ich den am Besten geeignetsten herausbekomme?
Hab es jetzt mit folgendem versucht:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Gruß
Chris
Hi,
Könnt ihr mir noch sagen, wie ich den am Besten geeignetsten herausbekomme?
der DOCTYPE besagt, von welchem Typ das Dokument ist, welches Du geschrieben hast-
Hab es jetzt mit folgendem versucht:
Hast Du ein Dokument vom Typ "striktes HTML/4.01" geschrieben? Wenn ja - wenn also Dein Dokument damit validiert - dann ist er offenbar richtig.
Cheatah
Hallo,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
er ist auf jeden Fall das Ziel, dass man als moderner Webautor erreichen sollte (der äquivalente XHTML Doctype wär aber auch erstrebenswert).
Mit dem HTML Validator des W3C kannst du das Dokument auf Fehler überprüfen.
Hi,
Tür auf und raus gehen. Alternativ fütterst Du eine Suchmaschine - beispielsweise auch die des Archivs dieses Forums - mit dem Begriff. Ein _bisschen_ Eigenleistung erwarte ich schon noch von Dir.
dachte du verrätst mir die Lösung gleich hier.
dieses Forum ist *nicht* dazu da, Deine Faulheit zu unterstützen. Es hat nicht ohne Grund ein Archiv und eine Suchfunktion: Mit dessen Hilfe kannst Du Antworten, die bereits gegeben wurden, recherchieren. Die selbe Frage wieder und wieder zu stellen macht nichts anderes, als das Archiv zuzumüllen und schadet somit diesem Forum. Dazu ist es nicht da. Es soll Dir weiterhelfen, wenn Du an Deine Grenzen gestoßen bist, und Dir keinen kostenlosen Privat-Support bieten.
Ich sitz nämlich schon seit Stunden an diesem Problem.
Weißt Du, das beeindruckt mich kein Stück. Du hast auf eine Frage, bei der Du nicht weiterkamst, passende Begriffe bekommen. Wenn Du die Zeit hast, diese noch nachzufragen, anstatt schnell nach ihnen zu suchen, dann sind die Stunden, die Du bisher auf das Problem verwendet hast, offenbar nicht langweilig gewesen.
Cheatah
Hallo
habe ich auch schon ausprobiert. Funktioniert allerdings auch nicht, zumindest nicht mit einem einzigen CSS-File.
Wenn du per SuMa nach Conditional Comments suchst, findest du bestimmt einen Weg, externe CSS Dateien nur für bestimmte IE Versionen zu "aktivieren".
Nebenbei: Bei der Angabe von 0 ist keine Werteinheit anzugeben, d.h. statt 0px ist hier - und nur hier - 0 alleinstehend ausreichend.
Gruß;
Hallo,
Nebenbei: Bei der Angabe von 0 ist keine Werteinheit anzugeben, d.h. statt 0px ist hier - und nur hier - 0 alleinstehend ausreichend.
Genau, und warum? Weil 0 Pixel viel viel länger ist als 0 cm und viel breiter wie 0 Bratkartoffeln ;-)
Grüße
Jeena Paradies
Hi,
Nebenbei: Bei der Angabe von 0 ist keine Werteinheit anzugeben, d.h. statt 0px ist hier - und nur hier - 0 alleinstehend ausreichend.
Genau, und warum? Weil 0 Pixel viel viel länger ist als 0 cm und viel breiter wie 0 Bratkartoffeln ;-)
... oder 0 Parsec (0pc) ;-) Daher spricht auch nichts dagegen, die Einheit mit anzugeben. Was dafür spricht, darf der Autor des zuoberst stehenden Zitates als Übung für zu Hause niederschreiben.
Cheatah
Tach Cheatah,
ich benötige einen CSS Hack, der wirklich nur den Internet Explorer 7 anspricht.
*+html
*+html ist nicht IE7-spezifisch, auch Opera ab Version 7.2 reagiert darauf, sofern eine XML-Deklaration im Dokument enthalten ist.
*:first-child+html wird AFAIK nur vom IE7 behandelt.
Man liest sich,
svg4you
Hi,
*+html ist nicht IE7-spezifisch, auch Opera ab Version 7.2 reagiert darauf, sofern eine XML-Deklaration im Dokument enthalten ist.
habe ich gerade mal getestet - die spinnen ja und sollten mit Fehldarstellung bestraft werden. ;-)
Vor allem wundert mich, dass dieser Bug vom XML-Prolog abhängig ist und selbst ohne nachfolgenden DOCTYPE nicht auftritt, also offenbar nichts mit quirks zu tun hat - wohl eher mit quick&dirty.
freundliche Grüße
Ingo
Hallo,
Habe gelesen, dass angeblich der Selektor "* html" nur bis zur Version 6 des IE behandelt wird, leider werden entsprechend gekennzeichnete Formatierungen auch im IE 7 angezeigt.
"+ html irgendwas" ist bis IE6 möglich, im IE7 nur im Quirksmode. Sprich: wenn du den "Browser" in den konformen Modus bringst sollte der Hack nicht mehr funktionieren.
Bitte auch problematiken bei Standaloneversionen beachten.
Hi,
"+ html irgendwas" ist bis IE6 möglich, im IE7 nur im Quirksmode. Sprich: wenn du den "Browser" in den konformen Modus bringst sollte der Hack nicht mehr funktionieren.
Bitte auch problematiken bei Standaloneversionen beachten.
auch an dich nochmal die Frage:
Wie zwinge ich den Browser in den konformen Modus und was gibt es bei Standaloneversionen zu beachten?
Gruß
Chris
Hallo,
auch an dich nochmal die Frage:
Wie zwinge ich den Browser in den konformen Modus und was gibt es bei Standaloneversionen zu beachten?
Durch die Angabe eines Doctypes, und innerhalb davon die URI zu einer entsprechenden DTD. Strict ist nahezu Pflicht in der heutigen Zeit.
Bei Standalone Varianten kann es vorkommen, dass einige Dinge nicht richtig funktionieren, etwa Conditional Comments, JavaScript oder auch CSS Hacks, da irgendwie beide Engines (die alte und die neue) verwendet werden.
Gruß;
Hallo,
Bei Standalone Varianten kann es vorkommen, dass einige Dinge nicht richtig funktionieren, etwa Conditional Comments, JavaScript oder auch CSS Hacks, da irgendwie beide Engines (die alte und die neue) verwendet werden.
So weit ich weiß sind das wirklich nur die Conditional Comments. Alles andere funktioniert.
Grüße
Jeena Paradies
Hi,
So weit ich weiß sind das wirklich nur die Conditional Comments. Alles andere funktioniert.
es existieren tatsächlich noch andere Unterschiede. So habe ich beispielsweise mal eine AJAX-Funktionalität geschrieben, die auf dem Standalone-IE 5 problemlos lief, auf dem "echten" IE 5 aber versagte. Grund: Kleinschreibung von "GET" in der Request-Methode.
Die Standalone-Varianten sind gute Testplattformen. Verlasse Dich aber *nie* darauf, dass sie dem Original entsprechen.
Cheatah
Hallo,
es existieren tatsächlich noch andere Unterschiede. So habe ich beispielsweise mal eine AJAX-Funktionalität geschrieben, die auf dem Standalone-IE 5 problemlos lief, auf dem "echten" IE 5 aber versagte. Grund: Kleinschreibung von "GET" in der Request-Methode.
Ah ok so etwas ist mir (bisher) noch nie untergekommen.
Die Standalone-Varianten sind gute Testplattformen. Verlasse Dich aber *nie* darauf, dass sie dem Original entsprechen.
Danke für den Hinweis.
Grüße
Jeena Paradies
Hello out there!
ich benötige einen CSS Hack, der wirklich nur den Internet Explorer 7 anspricht.
Nein, benötigst du nicht. Binde über einen <http://de.selfhtml.org/css/layouts/browserweichen.htm#alternative@title=conditional comment> ein spezielles IE-7-Stylesheet ein.
See ya up the road,
Gunnar
Hi,
Binde über einen <http://de.selfhtml.org/css/layouts/browserweichen.htm#alternative@title=conditional comment> ein spezielles IE-7-Stylesheet ein.
ich verstehe nicht, wie man immer noch Conditional Comments empfehlen kann. Gerade der IE 7 hat doch *bewiesen*, dass das völliger Unfug ist. Willst Du bei jedem neuen Browser wegen des Layouts den HTML-Code anfassen? Da ist ja Tabellenlayout noch besser - das muss wenigstens nur einmal gemacht werden.
Cheatah
Hello out there!
ich verstehe nicht, wie man immer noch Conditional Comments empfehlen kann. […] Willst Du bei jedem neuen Browser wegen des Layouts den HTML-Code anfassen?
Nein, will ich nicht, brauch ich nicht. Selbstverständlich binde ich die Referenzen auf Stylesheets per SSI bzw. PHP in die Ressourcen ein. :-Þ
See ya up the road,
Gunnar
Hallo,
Nein, will ich nicht, brauch ich nicht. Selbstverständlich binde ich die Referenzen auf Stylesheets per SSI bzw. PHP in die Ressourcen ein. :-Þ
Ja, es ist immer sinnvoll SSI oder PHP bei jedem Request aufzurufen, weil es sein könnte dass irgendwann eine neue IE Version kommen könnte.
Grüße
Jeena Paradies
habe d'ehre Jeena
Hallo,
Nein, will ich nicht, brauch ich nicht. Selbstverständlich binde ich die Referenzen auf Stylesheets per SSI bzw. PHP in die Ressourcen ein. :-Þ
Ja, es ist immer sinnvoll SSI oder PHP bei jedem Request aufzurufen, weil es sein könnte dass irgendwann eine neue IE Version kommen könnte.
Das Anliegen dieser Aussage verschliesst sich mir jetzt. Ok, ist schon halb zwei (also nach halb eins), aber wenn das Zeugs mit PHP generiert wird, brauche ich eigentlich nur ein Script anpassen. Oder verstehe ich etwas falsch?
man liest sich
Wilhelm
Hallo,
Das Anliegen dieser Aussage verschliesst sich mir jetzt. Ok, ist schon halb zwei (also nach halb eins), aber wenn das Zeugs mit PHP generiert wird, brauche ich eigentlich nur ein Script anpassen. Oder verstehe ich etwas falsch?
Das laufen lassen eines Scriptes kostet Zeit und Resourcen am Server. Diese könnte man sich sparen wenn man ganz normale HTML-Dateien auf der Festplatte speichern würde anstatt bei jedem aufruf den PHP-Parser anzuschmeißen und die Seite neu bauen zu lassen.
Jetzt ausschließlich weil Microsoft irgendwann in 3 oder 4 Jahren wieder eine neue IE-Version herausbringt bei jedem Aufruf einer Seite den PHP-Parser anzuschmeißen ist unsinnig. Dann doch lieber ein <!--[if IE]> für alle IEs und innerhalb dieser ausgelagerten IE-CSS-Datei dann mit Hacks arbeiten. Dazu braucht man dann eventuell einen Hack der nur beim IE 7 greift.
Grüße
Jeena Paradies
Hello out there!
Jetzt ausschließlich weil Microsoft irgendwann in 3 oder 4 Jahren wieder eine neue IE-Version herausbringt bei jedem Aufruf einer Seite den PHP-Parser anzuschmeißen ist unsinnig.
Besonders, wenn es die SSI-Engine auch tut.
Natürlich bietet sich die Lösung, die 'link rel="Stylesheet"'-Elemente in Includes zu packen, besonders dann an, wenn ma sowieso schon serverseitige Includes benutzt, fürs Hauptmenü bspw.
See ya up the road,
Gunnar
habe d'ehre Jeena
Das laufen lassen eines Scriptes kostet Zeit und Resourcen am Server. Diese könnte man sich sparen wenn man ganz normale HTML-Dateien auf der Festplatte speichern würde anstatt bei jedem aufruf den PHP-Parser anzuschmeißen und die Seite neu bauen zu lassen.
Eine geniale Idee, wenn sich der Content via CMS permanent aendert und aktuell gehalten werden soll. Mal so nebenbei z.b. bei einem Kundenprojekt mit ca. 500 Seiten bei jeder Aenderung fuer die entsprechende Seite statisches HTML generieren und auf den Server schubsen. Fuer was gibt es dann eigentlich SSI, PHP, ASP und sonstiges Serverzeugs. ;-)
Man kann sich natuerlich - wenn man unbedingt will - allem verschliessen. Wozu brauchst Du dann eigentlich Ruby? ;-)
man liest sich
Wilhelm
Hallo,
Eine geniale Idee, wenn sich der Content via CMS permanent aendert und aktuell gehalten werden soll.
Wie kommst du jetzt auf CMS? Er schrieb doch nur was von <link> mit PHP einbinden und so, nichts anderes und nur darauf habe ich mich bezogen.
» Mal so nebenbei z.b. bei einem Kundenprojekt mit ca. 500 Seiten bei jeder Aenderung fuer die entsprechende Seite statisches HTML generieren und auf den Server schubsen. Fuer was gibt es dann eigentlich SSI, PHP, ASP und sonstiges Serverzeugs. ;-)
Du sollst doch nicht immer von deinen auf andere Projekte schließen :-).
Man kann sich natuerlich - wenn man unbedingt will - allem verschliessen. Wozu brauchst Du dann eigentlich Ruby? ;-)
Hey, Ruby ist halt ne Lebensphilosophie ;-)
Grüße
Jeena Paradies
habe d'ehre Jeena
Du sollst doch nicht immer von deinen auf andere Projekte schließen :-).
... und Du umgekehrt latuernich auch nicht. ;-)
man liest sich
Wilhelm
Hallo,
Du sollst doch nicht immer von deinen auf andere Projekte schließen :-).
... und Du umgekehrt latuernich auch nicht. ;-)
Willst du damit sagen meine Projekte wären nicht allgemeingültig?!
Grüße
Jeena Paradies
Hi,
ich verstehe nicht, wie man immer noch Conditional Comments empfehlen kann. […] Willst Du bei jedem neuen Browser wegen des Layouts den HTML-Code anfassen?
Nein, will ich nicht, brauch ich nicht. Selbstverständlich binde ich die Referenzen auf Stylesheets per SSI bzw. PHP in die Ressourcen ein. :-Þ
trotzdem finde ich das unnötig und auch unpraktisch.
Meine Erfahrung mit dem IE7 ist, dass 90% selbst komplexeres CSS ohne Hacks funktioniert, zu 5% Hacks erforderlich sind (meist i.V. mit float) und zu 5% der quirks mode mit Hacks für alle IEs drer einzige Ausweg ist.
Für die ersten 5% nutze ich *+html und für die zweiten 5% einen Kommentar nach dem xml-Prolog und <!--[if IE]>.
freundliche Grüße
Ingo
Hallo,
ich verstehe nicht, wie man immer noch Conditional Comments empfehlen kann. Gerade der IE 7 hat doch *bewiesen*, dass das völliger Unfug ist. Willst Du bei jedem neuen Browser wegen des Layouts den HTML-Code anfassen? Da ist ja Tabellenlayout noch besser - das muss wenigstens nur einmal gemacht werden.
Warum so kritisch? Ich glaube, dass Microsoft durchaus einige kompetente Programmierer angestellt hat, die den IE8 oder Next auch wirklich verbessern können. Das Aussehen ist ja diesmal festgelegt und braucht kein neues Update mehr, also alle Arbeit in die Engine ;-)
Oder träume ich nur mal wieder?
Gruß;