CSS IE7 ignoriert display:inline

  • Ersteller Ersteller Mr. Snoot
  • Erstellt am Erstellt am
Belee schrieb:
Ja ok, mach dein Ding, du bist ein Sturkopf schlimmer als ich :) finde ich aber gut ;)
Wenn ich "dein Ding" mache zerschießt es das Layout - warum sollte ich es umstellen?

So bin ich wenigstens selbst schuld, dass es funktioniert :D
 
Zuletzt bearbeitet:
Das ist nicht mein Ding, das nutzen allgemein zu 99,9% alle so bei XHTML. Und bei niemanden wird das Layout zerrissen, warum bei dir? was genau hast du was andere nicht haben? display:inline? :D
Ich habe dir doch geschrieben woran es liegt, du hast die Deklaration weggenommen die DocType und Meta aber so dringelassen - die dann aber nicht mehr passen.

@carom
Das ist keine Pflicht, wo steht denn irgendwo was von Pflicht. Es ist eine Empfehlung. Schau dir doch mal einige XHTML-Seiten an, du wirst kaum eine finden die diese Deklaration nutzt, ich sagen mal fast garkeine. @Cadi hat dazu doch alles schon gesagt, die Deklaration ist eigentlich für XHTML vorgesehen doch hat sich das nicht durchgesetzt, warum? weil es eigentlich garnicht gebraucht wird und eher Probleme machen kann. Bei XHTML 1.1 muss aber die Deklaration rein sonst bekommst du das Dokument nicht validiert, das Ergebnis ist, niemand nutzt XHTML 1.1, so jetzt überleg mal warum nicht. Und wenn selbst das W3C die nicht nutzt, dann sollte es doch langsam klingeln oder @Snoot?

Das ist der DocType vom W3C, so @snoot, was also sagt uns das?
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>World Wide Web Consortium (W3C)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

@carom
Dann und das ist ganz wichtig, das ist kein HEADER sondern eine Dokument Auszeichnung!
 
Zuletzt bearbeitet:
Belee schrieb:
Ich habe dir doch geschrieben woran es liegt, du hast die Deklaration weggenommen die DocType und Meta aber so dringelassen - die dann aber nicht mehr passen.
Nein, habe ich nicht :freak:

TheCadillacMan hatte ja geschrieben wie es dann heißen müsste und genau so hab ichs gemacht.

Kannst es ja selbst mal testen: Anhang anzeigen layout.zip; hab hier jetzt aktuell keinen IE6.
 
Kann dir sagen warum weshalb. Ich habe das ZIP geladen und genau das was ich vermutet habe ist der Fall.

Mit Deklaration versetzt du den IE6 in den Quirks Modus, das heisst in deinem Fall, das hier der IE6 nach eigenen Wissen und Gewissen das HTML rendert und versucht es sogut er kann anzuzeigen. Und in deinem Fall hast du Glück das er das Layout genau so anzeigt wie du es dir vorstellst. Du hast hier quasi einen Hack mit der Deklaration geschaffen, welcher den IE6 dazu bringt in den Quirks-Mode zu schalten und glücklicherweise wird das Layout richtig angezeigt - das ist wirklich Glück :)


Nimmst du die Deklaration aber weg, dann arbeitet der IE6 im Standards Modus, heisst, er hält sich an die HTML Standards "halt an die, die er in der Version kennt". Und da gibt es dann keine Gnade, er zerschiesst das Layout weil er es nicht versteht bzw. die nötigen Standards nicht richtig intepretieren kann - voller Bugs ist.

http://www.satzansatz.de/cssd/quirksmode.html

Solange du das Layout so lässt, kannst du die Deklaration drin lassen, denn damit stellst du sicher das ohne großartigen extra CSS und gefrickel der IE6 das Layout ordentlich anzeigt.
Problematisch wird es erst wenn du das Layout änderst oder irgendwas benutzt was der IE6 dann auch im Quirks-Mode nicht richtig intepretieren kann.

Und hier noch paar abschliessende Sätze zu XML die sehr passend sind:
Die eigentliche Idee hinter XHTML 1.0 bestand darin, HTML zu einem XML-Dialekt zu machen und infolgedessen Webseiten als XML-Dokumente auszuliefern.

Dieses Anliegen ist grandios gescheitert. Sozusagen jedes XHTML-Dokument wird mit dem MIME-Type text/html an den Client ausgeliefert, was die Dokumente technisch gesehen zu HTML-Dokumenten macht. Echte XML-Dokumente müssten mit einem MIME-Type wie application/xhtml+xml ausgeliefert werden.

Der Grund dafür ist, dass ein XML-Parser beim kleinsten Fehler den Rendervorgang abbricht und eine Fehlermeldung anzeigt statt Inhalte der Seite.
99 % aller Internetseiten sind aber nicht valide und würden demnach bei Auslieferung als XML überhaupt nicht angezeigt. Hinzu kommt, dass der Internet Explorer bis einschließlich Version 8 überhaupt nichts mit dem XML-MIME-Type anzufangen weiss und entsprechende Dokumente zum Download anbietet, statt sie zu rendern.

Quelle: http://www.html.de/

Heisst, wenn du den Server dazu bringst deine Seite als XML auszuliefern, tut er jetzt nicht. Dann werden z.B. die IEs unter V9 die Seite runterladen anstatt sie anzuzeigen. Ungetestet :D
 
Zuletzt bearbeitet:
Belee schrieb:
die Deklaration ist eigentlich für XHTML vorgesehen


Eigentlich erst mal nur für XML, und du findest kaum XML-Dateien ohne diese Angabe. Ich habe ja nur gesagt dass das schade ist weil es einfach keinen Sinn macht. Entweder man kann in der Praxis xhtml als richtiges XML ausliefern (wie man es kennt inkl. der Angabe) oder man braucht eigentlich kein xhtml. Mehr hab ich nicht gesagt. Aber die Gründe stehen ja in deinem Post.
 
Zuletzt bearbeitet:
Ich mache dir doch keinen Vorwurf oder so. Es ist schade, da stimme ich dir zu.

Und richtig, es macht absolut keine Sinn, man kann genausogut HTML4 nehmen. XHTML 1.0 ist so wie man es jetzt benutzt eher nur kosmetik. Denn es macht absolut keinen Unterschied ob man HTML 4 strict oder XHTML 1.0 strict benutzt, es sind nur ganz minimale Abweichung.

Der Vorteil bei text/html ist halt das Fehler nicht dafür sorgen dass die ganze Webseite nicht mehr angezeigt wird denn das wäre bei Auslieferung als XML der Fall, jeder kleinste Fehler wäre ein parse Abbruch im Browser. Dazu muss man nicht einmal selbst schuld sein, es reicht schon wenn man Teile des Codes dynamisch von PHP oder via DB zusammensetzt und die DB mal ausfällt, dann gäbe es garnichts mehr auf der Seite. Das hat das W3C damals alles irgendwie verpeilt.

Deshalb ist das was @snoot macht eigentlich bisschen falsch weil, er hat die Deklaration drin sie wird aber garnicht benutzt. Sie wird erst benutzt wenn er das dem Server sagt, dann erst wird sein Code als XML an den Klient gesendet, und dann wird jeder kleinste Fehler mit parse Error quittiert. Und ältere Browser u.a. die IEs kommen erst garnicht mit klar.
Man könnte jetzt auch behaupten das MS dem W3C hier ein Strich durch die Rechnung gezogen hat.
 
Belee schrieb:
... das ist wirklich Glück :)
Dann darfst du jetzt dreimal raten, warum der Ersteller des Layouts wohl diesen Weg gewählt hat.

Auf andere Weise ist es kaum/nicht(?) möglich ein identisches und zugleich standardkonformes Layout ohne CSS-Hacks oder Hintergrundbilder zu erstellen, welches in nahezu jedem Browser - egal wie alt, egal ob Handy- oder Desktop-Browser, egal ob Mac oder Windows - identisch aussieht.
 
Hier kannst du dir das mal auf paar Browsern anschauen:
http://browsershots.org/

Bei einigen rutscht da und hier noch was aus der Reihe, bei anderen gibt es wohl noch ein Problem mit den Links ganz rehts oben. Kann man aber mit sicherheit noch flicken. Sind aber ältere Browser und naja, soviel werden die glaub ich auch nicht genutzt. Ist halt dann nur Hardcore wenn du es ganz genau machen willst, aber so wie es ist sieht es eigentlich sehr gut aus.
 
Merci; ich benutz dazu aber immer Browsercam.com - muss man zwar alle 200 Screenshots nen neuen (Fake)Account erstellen, aber dafür hat man die Bilder idR auch sofort.

Und bis auf das angesprochene Problem mit der Liste oben rechts sieht das bei allen Browsern/Betriebssystemen ok aus (wobei ich jetzt wirkliche Uralt-Browser nicht angeschaut habe).
 
Zurück
Oben