Doctype wirklich "unbedingt" erforderlich?
-
S.o.
Hintergrund: Im IE werden bei Angabe des DOCTYPE's bestimmte Formatierungen fehlerhaft interpretiert, die bei anderen Browsern wiederum funktionieren, wenn ich das einfach weglasse, funktioniert die Darstellung bei allen mir bekannten Browsern (u.a. IE, Firefox, Mozilla, Opera, CrazyBrowser, Netscape)
Also in meinen Augen ist diese Angabe nicht unbedingt erforderlich, auch wenn es "unschön" ist, wenn man sie weglässt. Was meint ihr dazu?
Hier einmal ein Beispiel:
<html> <head> <title>Mittige Darstellung</title> </head> <body> <table style="width:100%;height:100%;"><tr><td align="center" valign="middle"> <table width="300"> <tr><td>Test</td></tr> </table> </td></tr></table> </body> </html>
Wenn ich diesen Text so eingebe, wird "Test" genau in der Mitte des Fensters (sowohl vertikal, als auch horizontal) angezeigt. Füge ich jedoch DOCTYPE hinzu (habe verschiedene versucht), wird der Text teilweise oben mittig, oder sogar oben links dargestellt.
-
Sphy schrieb:
Wenn ich diesen Text so eingebe, wird "Test" genau in der Mitte des Fensters (sowohl vertikal, als auch horizontal) angezeigt. Füge ich jedoch DOCTYPE hinzu (habe verschiedene versucht), wird der Text teilweise oben mittig, oder sogar oben links dargestellt.
Oben links, das ist die korrekte Darstellung deines Codes! Wenn du also falschen Quellcode interpretiert haben willst (worin der IE, zumindest bis zur Version 6, ein wahrer Meister ist), dann nimm als Doctype HTML 4.01 Transitional oder schreibe richtigen Code!
Schlimmer als ganz ohne Doctype geht nun wirklich nicht mehr ...
-
Hm... wo genau ist denn dort jetzt der Fehler? Es nutzt recht wenig, wenn jemand schreibt "Da ist ein Fehler", das sollte noch etwas konkretisiert werden... zumal ich diesen Code gerade nur ausgedacht habe, in der praktischen Anwendung sieht er noch etwas anders aus... aber ich kann hier jetzt keinen wirklichen Fehler entdecken, nur bin ich mir gerade nicht sicher, ob bei "valign" nun "center" oder "middle" reingehört...
-
Gibt weder align noch valign afaik. Du musst dafür die CSS-Properties text-align und vertical-align verwenden. Das wird zwar in einigen Fällen ziemlich schwierig weil man zB für DIV-Boxen die zentriert sein sollen zT Workarounds benötigt, aber align und valign ist kein XHTML 1.0
MfG SideWinder
-
Das soll auch kein XHTML sein, sollte eher, wie bereits erwähnt, HTML 4.01 Transitional sein, jedoch wird das auch dann nicht so dargestellt. Aber das mit den CSS-Eigenschaften werde ich gleich mal ausprobieren, wenn ich zuhause bin. Danke ersteinmal.
-
Exakt, und zumindest in XHTML 1.0 Strict und XHTML 1.1 währe die Stylesheet-Angabe "width: 100%; height: 100%;" bei dem Table-Element auch ungültig (oder zumindest wirkungslos), da den Parent-Elementen keine Höhen und Breiten zugeteilt sind.
Wenn aber doch, kommt wieder das Problem mit dem vertikalen und horizontalen Scrollen und bald wirft man das Handtuch. Wenn du unbedingt height-Angaben in Prozent benötigst, dann musst du weitestgehend auf XHTML 1.0 Strict und 1.1 verzichten, sonst raubt dir das den letzten Nerv und führt doch zu nichts!
Die einfachste, vom W3C abgesegnete und wirklich portable Methode (mit der ich nie Probleme hatte, in keinem Browser) ist, schlichtweg auf dynamische height-Angaben zu verzichten. Und align und valign werden eleganter und flexibler als Stylesheet-Angabe mit "text-align: center;" und "vertical-align: middle;" angegeben.
Was du da machst sieht mir fast wie ein Mischmasch aus HTML, XHTML und CSS aus.
-
guckst du selfhtml: http://saftsack.fs.uni-bayreuth.de/html/selfhtml/tced.htm
btw: wenn's ohne doctype auf den von dir getesteten browsern gut aussieht, dann lass es doch einfach wech...
-
net schrieb:
btw: wenn's ohne doctype auf den von dir getesteten browsern gut aussieht, dann lass es doch einfach wech...
Genau so habe ich es ja auch getan, nur wollte ich einfach mal den genauen Sinn von Doctype hinterfragen.
-
Sphy schrieb:
Genau so habe ich es ja auch getan, nur wollte ich einfach mal den genauen Sinn von Doctype hinterfragen.
es gibt verschiedene darstellungsmodi usw. das soll's u.a. dem browser und irgendwelchen validierungstools einfacher machen. übrigens ist 'kein doctype' auch ein doctype. guckst du: http://en.wikipedia.org/wiki/Quirks_mode
-
Ich danke dir, für deine Mühe und für deine Hilfe. Werde es - wie gesagt - wenn ich zuhause bin gleich mal ausprobieren.
Dachte ich mir doch gleich, dass das nur eine Erleichterung für den Browser ist und nicht "überlebenswichtig" ist...
-
Sphy schrieb:
Dachte ich mir doch gleich, dass das nur eine Erleichterung für den Browser ist und nicht "überlebenswichtig" ist...
Es ist überlebenswichtig, wenn du XHTML nutzen willst. Und zwar richtig XHTML. Dann geht nix ohne Doctype. Aber da der IE eben überhaupt kein XHTML beherrscht, ist das momentan leider sowieso kein Thema.
-
net schrieb:
guckst du selfhtml: http://saftsack.fs.uni-bayreuth.de/html/selfhtml/tced.htm
wenn ich nicht völlig bescheuert bin, ist das doch gerade das, was er gepostet hat, oder? und wenn ich nicht völlig bescheuert bin, dann ist das doch angeblich nach den strikten regeln falsch oder "unschön", "center" und "right" in HTML zu schreiben?
Mr. B
-
1. ist kein Doctype kein Doctype! Der Browser fällt zurück zum Quirks Mode, weil er davon ausgehen muss, dass dieser die gewählte Technik am ehesten repräsentiert! Er nimmt eine Fehlerbehandlung vor, die du bewusst einbauen willst! Das ist fahrlässig, wird vom W3C (aus gutem Grunde) nicht gutgeheißen und ist schlichtweg falsches HTML! Denn der Doctype gehört dazu, ob es einem nun passt oder nicht!
2. es ist nicht bloß eine Browsererleichterung, sondern eine immens wichtige Angabe. HTML und XHTML sind Beschreibungssprachen. Codes! Verschickst du Verschlüsselte Nachrichten auch ohne Schlüssel und überlässt es dem Empfänger, etwas damit anzufangen?
3. der Internet Explorer, sowohl Version 6 als auch 7, unterstützen sehr wohl XHTML! Bitte nicht immer solche falschen Unterstellungen! Die Unterstützung ist, im 6er, zwar bei weitem nicht perfekt, aber zu sagen er unterstützte "überhaupt kein XHTML" ist schlichtweg falsch!Ich weiß nicht, warum ihr euch immer am bösen IE und am guten Quirks Mode aufgeilt. Ich schreibe meine Seiten in validem XHTML 1.1 in Kombination mit CSS und ohne jedes clientseitige Script und die Seiten sehen so aus, wie sie sollen, und zwar in allen gängigen Browsern! Auch wenn ich es schon ziemlich oft gesagt habt: Sucht doch gefälligst mal das Problem bei euch! Es sind nicht immer die bösen Maschinen und Browser, die alles falsch machen!
EDIT:
@Mr. B
Der <center>-Tag ist in HTML 4.01 deprecated, aber afaik nicht falsch. Das Attribut align hingegen ist im Standard enthalten. In XHTML 1.0 ist center afair nicht mehr vorhanden und das Attribut align deprecated. In XHTML 1.1 (und 1.0 Strict? Da bin ich mir jetzt nicht sicher ...) ist beides ein Fehler, da setzt man (zu Recht) auf die viel flexibleren und durchdachteren Stylesheets.
-
Reyx schrieb:
3. der Internet Explorer, sowohl Version 6 als auch 7, unterstützen sehr wohl XHTML! Bitte nicht immer solche falschen Unterstellungen! Die Unterstützung ist, im 6er, zwar bei weitem nicht perfekt, aber zu sagen er unterstützte "überhaupt kein XHTML" ist schlichtweg falsch!
Wenn man keine Ahnung hat, einfach mal die Klappe halten.
Ich hab's mir schon im letzten Thread gedacht, in dem du groß von deinem "XHTML 1.1 Strict" getönt hast. Jetzt hast du es dankenswerterweise bestätigt. Nur weil du XHTML falsch verwendest und die Fehlerbehandlung des IE etwas brauchbares aus deinen Seiten produziert, bedeutet nicht, dass der IE auch XHTML unterstützt.
Es ist schon eine Ironie für sich, wie du großspurig und selbstüberzeugt andere belehrst, und dabei genau das, was du anderen ankreidest, selbst falsch machst. Es ist zwar ganz nett, dass sich in dem Forum hier die Leute gerne selbst lächerlich machen, aber solche Möchtegerne wie du sind wirklich nervig.Es gibt etwas total abgefahrenes, das nennt sich MIME-Type. Noch nie gehört? Merk ich. Mit dem MIME-Type gibt der Webserver die Art der Daten an.
HTML hat den MIME-Type "text/html". Empfängt der Browser etwas mit diesem MIME-Type, rendert er es als HTML.
XHTML dagegen hat den MIME-Type "application/xhtml+xml". Nur wenn dieser MIME-Type gesetzt ist, werden die Daten als XHTML verarbeitet.
Wenn du schlau bist, merkst du jetzt schon, worauf es hinausläuft ...Der IE 6 und auch der IE 7 unterstützen kein XHTML. Sie beherrschen den MIME-Type "application/xhtml+xml" nicht. Gründe dafür kannst du gerne dem Blog der IE7-Entwickler entnehmen (kurz gesagt: die Engine des IE, welche immerhin vom IE 4(!) stammt, müsste dafür vollständig neu geschrieben werden). Du kannst gerne mal versuchen deine Seiten als XHTML an einen IE auszuliefern ...
Nun zu dir. Du lieferst dein XHTML als "text/html" aus. Das heißt auf gut deutsch, dass du dir nur einbildest XHTML zu verwenden. In Wirklichkeit werden deine Seiten aber als fehlerhaftes HTML gerendert und dargestellt. Von XHTML keine Spur. Mit "text/html" hat der IE natürlich auch keine Probleme.
Denn HTML kennt er.Und weil ich so ein netter Kerl bin, erzähl ich dir auch gleich was es mit XHTML 1.0 und XHTML 1.1 auf sich hat.
XHTML 1.0 ist als abwärtskompatible Variante von XHTML gedacht. Deswegen ist es bei XHTML 1.0 als einzige(!) XHTML-Variante explizit ok sie als "text/html" auszuliefern. Bei XHTML 1.1, also was du verwendest, um "cool" zu sein, ist das dagegen nicht ok. XHTML 1.1 ist nur als "application/xhtml+xml" auszuliefern - und damit kann der IE eben nichts anfangen.
Nochmal zum nachlesen:
http://www.w3.org/TR/xhtml-media-types/#summary"Better to remain silent and be thought a fool than to speak out and remove all doubt." (Abraham Lincoln)
Wenn ich nur jedes mal einen Euro bekommen würde, wenn dieser Spruch zutrifft, ich wäre reich
-
Bei XHTML 1.1, also was du verwendest, um "cool" zu sein, ist das dagegen nicht ok. XHTML 1.1 ist nur als "application/xhtml+xml" auszuliefern - und damit kann der IE eben nichts anfangen.
Wie leitest du das aus "SHOULD NOT" her? Das ich damit dann auch den IE füttern kann halte ich für "may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful"
MfG SideWinder
-
Zum ersten: Das XHTML 1.1 Strict war ein Flüchtigkeitsfehler, dass es das nicht gibt ist mir bewusst.
Zum zweiten: Woher nimmst du bitte die Dreistigkeit, mir anzukreiden, ich würde meine Webseiten mit falschen MIME-Type ausliefern? Zu deiner Information, das tu ich nämlich nicht; der Kompatibilität halber beliefere ich ausschließlich den IE und einige andere Empfänger, wie z.B. Google (weil die z.B. mit application/xhtml+xml auch nicht klar kommen! Was sagst du dazu! Ist Google jetzt auch scheiße und baut auf antiker Technik?) mit einem einfachen text/html-MIME. Und die Unwissenheit, ja gerade zu Dummheit, die du mir hier haltlos und auf einer Dichterei deinerseits basierend anheißen willst, beleidigt mich durchaus! Also entweder deine Behauptungen auf stichhaltigen Fakten begründen (zeige mir meine Seite, die falsch geschrieben ist, und mit der ich es "genau so falsch mache" wie alle die, denen ich es hier ankreide) oder du lässt es! Auf diesem Niveau diskutiere ich nämlich nicht weiter.
Die Rede war hier vom interpretieren von XHTML, nicht jedoch von den Empfehlungen des W3C auf das Zusammenspiel mit dem HTTP-Protokoll. Zudem siehe SideWinders Post.
Ferner verwende ich XHTML 1.1 nicht um "cool" zu sein; mit solchen kindlichen Wortandichtungen brauchst du mir nicht kommen. Ich verwende es, weil ich bisher immer sehr gut damit gefahren bin und nie größere Kompatibilitätsprobleme hatte. Das ist Fakt, und wenn du etwas anderes behaupten solltest, wäre das anmaßend.
-
Reyx schrieb:
Der Browser fällt zurück zum Quirks Mode, weil er davon ausgehen muss, dass dieser die gewählte Technik am ehesten repräsentiert! Er nimmt eine Fehlerbehandlung vor, die du bewusst einbauen willst! Das ist fahrlässig, wird vom W3C (aus gutem Grunde) nicht gutgeheißen und ist schlichtweg falsches HTML!
macht aber nix. das ergebnis zählt, nämlich dass möglichst viele browser es (wie gewollt) darstellen können. es geht nicht darum alles standardkonform zu machen, nur um hinterher über die unfähigkeit der browserhersteller zu wettern
-
SideWinder schrieb:
Bei XHTML 1.1, also was du verwendest, um "cool" zu sein, ist das dagegen nicht ok. XHTML 1.1 ist nur als "application/xhtml+xml" auszuliefern - und damit kann der IE eben nichts anfangen.
Wie leitest du das aus "SHOULD NOT" her? Das ich damit dann auch den IE füttern kann halte ich für "may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful"
Selbstverfreilich ist das im Einzelfall eine Notlösung, die man bei XHTML 1.1 ergreifen kann (Stichwort "Content Negotiation"!). Wenn man aber weiß, dass man sowieso nur "text/html" verwendet, dann ist XHTML 1.0 die einzig sinnvolle Möglichkeit. Der Grund dafür liegt auf der Hand, XHTML 1.0 ist eine Neuformulierung von HTML 4 in XML. XHTML 1.1 dagegen verhält sich fundamental anders (modulbasiert) und streicht diverse Tags und Attribute von HTML 4.
XHTML 1.1 standardmäßig als "text/html" auszuliefern - also selbst XHTML-fähigen Browsern - ist der größte Schwachfug, den man überhaupt machen kann. Und genau das ist eben mit "SHOULD NOT" ausgedrücktReyx schrieb:
Zum zweiten: Woher nimmst du bitte die Dreistigkeit, mir anzukreiden, ich würde meine Webseiten mit falschen MIME-Type ausliefern?
Weil es die sinnvolle Interpretation deiner bisheren Beiträge ist.
1. Du hast offensichtlich keine Ahnung von der Bedeutung und den Auswirkungen von "text/html" und "application/xhtml+xml" (siehe z.B. deinen aktuellen Beitrag "Die Rede war hier vom interpretieren von XHTML, nicht jedoch von den Empfehlungen des W3C auf das Zusammenspiel mit dem HTTP-Protokoll.").
2. Deine Behauptung, dass man ganz einfach XHTML+CSS schreibt und alle Browser es sofort richtig machen, zusammen mit deiner Betonung, dass du keinerlei serverseitiges Skript verwendest, legt nahe, dass du jedem Browser exakt das selbe auslieferst. Und das heißt dann eben auch "text/html".
Wenn du das Content Negotation aber mit dem Webserver machst, und die Browser eben nicht identisch beliefert werden, stellt sich die Frage, was du mit deiner Betonung von keinen Skripten überhaupt betonen willst ...
-
Ja, das möglichst viele Browser es möglichst gleich darstellen! Die Quirks Modes fallen aber bei den mir bekannten Browsern wesentlich unterschiedlicher aus, als die korrekt arbeitenden Renderer, auch wenn das früher vielleicht einmal anders war. Ich musste immer sehr viel "umfrickeln" um bei HTML 4.01 alles so dargestellt zu bekommen, das es überall gleich aussah (da war der Quirks Mode wohl tatsächlich eine Erleichterung), aber das habe ich bei XHTML nicht mehr!
Aber es ist natürlich jedem selbst überlassen, was er macht und was nicht. Trotzdem ist es in meinen Augen ein Fehler. Ihr funktionalisiert den Browser zu einem fehlerbehebenden Interpreter um. Würdet ihr einen Compiler genau so bevorzugen, der euch Fehler im Quellcode eurer Programme nach eigenem Ermessen stillschweigend retuschiert? Aber bitte ...
EDIT:
@minhen
Wenn du meinen Post, über den du dich so auslässt, tatsächlich mit einer Aufmerksamkeit gelesen hättest, die deine Argumentation hier rechtfertigen würde, dann währe dir aufgefallen, das ich keine clientseitigen Scripts verwende! Zur Information: Das wäre z.B. JavaScript undhat mit einem MIME-Type oder dem, was beim Browser landet, nichts zu tun. Also bitte noch einmal lesen und noch einmal nachdenken.Ferner scheinst du meine Post so auszulegen, wie es dir passt. Du sagst ich würde die "Wichtigkeit" des MIME-Types unterschätzen. Das tue ich ganz sicher nicht. Aber der MIME-Type ist und bleibt Bestandteil des HTTP-Protokolls, was der Browser daraus macht ist seine Sache. Mehr habe ich nicht ausgesagt, und wenn du mir jetzt erzählen willst, der MIME-Type würde zum HTTP-Protokoll gehören, dann bin ich auf gute Quellen erster Hand, die das belegen, gespannt!
Und zu deinem Text über den MIME-Type von XHTML 1.1: Ich stimme dir voll und ganz zu! Aber von einem standardmäßigen Ausliefern von XHTML 1.1 - Dokumenten als text/html war hier keine Rede!
2. Deine Behauptung, dass man ganz einfach XHTML+CSS schreibt und alle Browser es sofort richtig machen
Auch das habe ich nie ausgesagt.
-
Nun, dann bitte ich darum, dass hier jemand ein schlichtes Beispiel postet, wie man unter HTML 4.01 (kein XHTML) Das Wort "Test" exakt in der Mitte des Browserfensters darstellt... also horizontal und vertikal zentriert...