Hacks für den IE
Jens-1
- browser
Hallo,
immer wieder merke ich, dass gewisse Seiten mit Firefox korrekt angezeigt werden und mit IE
6 oder 7 oder 8 oder 9 nicht.
Jetzt bin ich auf den Begriff Hacks gestoßen und habe dann auch gleich eine lange Liste der "verrücktesten" Hacks gefunden:
Woher aber weiß ich, welcher Hack welchen Effekt (in welcher Browserversion) des IE korrigiert oder ob es überhaupt einen Hack für den "Fehler" gibt oder ob es überhaupt ein Fehler im IE ist oder vielleicht eher im Firefox?
Om nah hoo pez nyeetz, Jens-1!
immer wieder merke ich, dass gewisse Seiten mit Firefox korrekt angezeigt werden und mit IE
6 oder 7 oder 8 oder 9 nicht.
Grundvoraussetzung ist valides HTML, damit die Browser das Dokument Standard-Modus (siehe auch http://de.wikipedia.org/wiki/Quirks-Modus) darstellen.
Woher aber weiß ich, welcher Hack welchen Effekt (in welcher Browserversion) des IE korrigiert
Ein Hack korrigiert überhaupt keine Fehler. Er ermöglicht es, konkrete Browser anzusprechen, um ihnen ein angepasstes CSS zur Verfügung zu stellen.
oder ob es überhaupt einen Hack für den "Fehler" gibt.
s.o.
oder ob es überhaupt ein Fehler im IE ist oder vielleicht eher im Firefox?
Zu allererst würde ich den Fehler bei mir selbst suchen. Im allgemeinen ist das Verwenden von Hacks nur für IE sinnvoll. IE6 und 7 sollten nur auf ausdrücklichen Wunsch des Auftraggebers über Gebühr berücksichtigt werden. Bei den anderen Browsern werden Fehler schnell korrigiert, ältere Versionen sind zudem deutlich seltener anzutreffen. (FX vs IE)
Matthias
Hi Matthias,
erst einmal Danke für die Erläuterungen.
Folgendes ist mir aber immer noch schleierhaft.
/*\*//*/
* html .image, * html .content {
display: inline-block;
width: auto;
}
/**/
Offensichtlich sind dies doch mind. 2 Hacks.
Ich verstehe dies so:
IE5 Mac ignoriert alles.
Aber dann gehts los:
Alle anderen Browser Interpretieren /*\*/ als Kommentar und dann /* als Beginn eines neuen Kommentars, das aber auch erst am Ende (/**/) abgeschlossen wird, also würde doch dasganze Statement auch von allen anderenBrowsern ignoriert?
Gruß
Jens
Om nah hoo pez nyeetz, Jens-1!
Offensichtlich sind dies doch mind. 2 Hacks.
Das kann gut sein. Wenn du es wirklich wissen willst, musst du es wohl probieren. Mein Steckenpferd ist die Computerpaläontologie nicht.
Alle anderen Browser Interpretieren /*\*/ als Kommentar und dann /* als Beginn eines neuen Kommentars, das aber auch erst am Ende (/**/) abgeschlossen wird, also würde doch dasganze Statement auch von allen anderenBrowsern ignoriert?
Und das was in diesem Statement steht, interessiert wiederum nur den IE6 (der allerdings inline-block nicht kennt). Es macht also keinen Sinn, dies vor allen Browsern zu verstecken.
Matthias
Hallo Matthias,
Und das was in diesem Statement steht, interessiert wiederum nur den IE6 (der allerdings inline-block nicht kennt). Es macht also keinen Sinn, dies vor allen Browsern zu verstecken.
wenn ich richtig vermutet habe und Deine Aussage richtig interpretiere ist die Angabe
/*\*//*/
* html .image, * html .content {
display: inline-block;
width: auto;
}
/**/
völlig überflüssig und kann weggelassen werden
Hallo!
Und das was in diesem Statement steht, interessiert wiederum nur den IE6 (der allerdings inline-block nicht kennt).
Das in der Klammer stimmt so nicht ganz. Die IE 6/7 ändert zwar den display-Wert nicht (da gibt es für ihn nur inline und block), aber er setzt das Flag hasLayout, wodurch sich inline-Elemente so ähnlich verhalten wie inline-block-Elemente in anderen Browsern. Da dieses Flag auch noch andere "Nebenwirkungen" hat, kann das durchaus ein sinnvoller Fix für irgendeinen Bug im IE 6 sein.
Viele Grüße,
Alexander