Docex: DOCTYPE verhindert W3C Validierung

Meine Projekt ist mit absolut positionierten div-Boxen aufgebaut.
Um den berühmten "3-Pixel Fehler" des Internet Explorers zu verhindern, muss die DOCTYPE Angabe an erster Stelle stehen, um jedoch die W3C Validierung zu schaffen (worauf ich sehr viel Wert lege) muss die XML-Deklaration an erster Stelle im Dokument stehen.

Also ist mein Projekt entweder nicht valid oder wird fehlerhaft im IE angezeigt.

Hat jemand eine Idee wie mein Dokument im IE richtig dargestellt werden kann und gleichzeitig W3C valid ist ?

  1. Hi,

    Um den berühmten "3-Pixel Fehler" des Internet Explorers zu verhindern, muss die DOCTYPE Angabe an erster Stelle stehen, um jedoch die W3C Validierung zu schaffen (worauf ich sehr viel Wert lege) muss die XML-Deklaration an erster Stelle im Dokument stehen.

    von XHTML/1.1 ist derzeit noch abzuraten. Verwende XHTML/1.0.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. von XHTML/1.1 ist derzeit noch abzuraten.

      Cheatah,
      Ich würde das nicht auf die Derzeit beschränken.

      Ich sehe kaum eine Zukunft für XHTML 1.1; bei den anstehenden Änderungen in den Browsern, um bspw. den Typ application/xhtml+xml und Ruby-Annotationen zu verdauen, kann auch gleich XHTML 2 implementiert werden.

      Live long and prosper,
      Gunnar

      --
      „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
  2. Hallo Docex,

    Wie Cheatah Dir zu sagen versucht, sollst Du Dein XHTML als HTML mit dem Mime-Type text/html ausliefern. Dann kannst Du die XML-Deklaration weglassen.
    (Das W3C sieht das bei XHTML 1.0 noch vor, bei XHTML 1.1 nicht mehr. Darauf zielt Cheatah ab. Freilich würde jemand, der den Hinweis versteht, den Hinweis nicht benötigen.)

    Alternativ dazu kannst Du UTF-8 (oder UTF-16) verwenden. In diesem Fall erlaubt die XML-Spezifikation die XML-Deklaration wegzulassen. Da Du aber vermutlich sowieso text/html als Mime-Type verwenden wirst, ist das nicht notwendig.

    Grüße

    Daniel

    1. Hallo,

      Wie Cheatah Dir zu sagen versucht, sollst Du Dein XHTML als HTML mit dem Mime-Type text/html ausliefern. Dann kannst Du die XML-Deklaration weglassen.

      Äh, das ist eine denkbar schlechte »Lösung«. So weicht man dem Problem lediglich in der Praxis aus, ohne es zu lösen. Ein Fehler bleibt ein Fehler, egal, wie man das Dokument letztlich dem Browser verkauft. Das wird sich früher oder später zeigen.

      Alternativ dazu kannst Du UTF-8 (oder UTF-16) verwenden. In diesem Fall erlaubt die XML-Spezifikation die XML-Deklaration wegzulassen.

      Ja, der Fragesteller sollte auf jeden Fall UTF-8 verwenden, wenn er die XML-Deklaration weglässt.

      Andernfalls bitte nicht einfach auf die Regeln von XML pfeifen. XHTML auf XML-Basis wurde erfunden, damit irgendwann einmal die Kodierungsprobleme, unter denen HTML leidet, passé sind. Daher gibt es die Pflicht der Kennzeichnung der Kodierung. Wenn man eine solche Kennzeichnung im Dokument selber unterbringen will, und das ist sehr sinnvoll, ist die XML-Deklaration die einzige Möglichkeit.

      Da Du aber vermutlich sowieso text/html als Mime-Type verwenden wirst, ist das nicht notwendig.

      Dann ist es kein gültiges XML, kein gültiges XHTML. Wieso sollte man XHTML schreiben, welches niemals, nicht serverseitig, nicht autorenseitig ohne Weiteres als XHTML verarbeitet werden kann? Welchen Vorteil hat dann XHTML?
      Wieso ratet ihr von XHTML 1.1 als text/html ab, weil dies einer Anmerkung des W3C widerspricht, ratet aber, kaputtes XHTML 1.0 zu schreiben, das es dem XML-Standard untergräbt? Ergibt das Sinn?

      Wenn man XHTML schreibt, es aber niemals wirklich als XHTML verarbeitet und es auch nicht plant, sodass es einem egal sein kann, ob das Dokument nach XML-Regeln fehlerhaft ist, so sollte man die Finger von XHTML lassen und weiterhin HTML 4.0 schreiben.

      http://forum.de.selfhtml.org/archiv/2005/11/t117993/#m756258

      Mathias

      1. Hallo molily,

        Dann ist es kein gültiges XML, kein gültiges XHTML. Wieso sollte man XHTML schreiben, welches niemals, nicht serverseitig, nicht autorenseitig ohne Weiteres als XHTML verarbeitet werden kann? Welchen Vorteil hat dann XHTML?

        Naja, man weiß ja, welchen Zeichensatz man verwendet hat. Es ist kein Problem, einen XML-Parser mit solchem nicht ganz Standardkonformem XML zu füttern und ihm den Zeichensatz auf anderem Wege mitzuteilen.
        UTF-8 zu verwenden ist natürlich grundsätzlich eine gute Idee, da es einem das Theater mit Zeichensätzen erspart.

        Grüße

        Daniel

    2. XHTML als HTML mit dem Mime-Type text/html ausliefern. […]
      (Das W3C sieht das bei XHTML 1.0 noch vor, bei XHTML 1.1 nicht mehr.

      Daniel,
      XHTML 1.1 als text/html auszuliefern, ist keineswegs verboten.

      Live long and prosper,
      Gunnar

      --
      „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
      1. Hallo Gunnar,

        XHTML 1.1 als text/html auszuliefern, ist keineswegs verboten.

        Das habe ich ja auch nicht gesagt, allerdings wird in der XHTML 1.0 Spezifikation diese Möglichkeit explizit beschrieben, in der XHTML 1.1 und der zugrundeliegenden XHTML Modularization Spezifikation meines Wissens nicht.
        Die Verwendung erscheint da auch nicht mehr wirklich sinnvoll da XHTML 1.1 nicht mehr darauf abzielt, kompatibel zu HTML zu sein.
        http://www.w3.org/TR/xhtml-media-types/ fasst die Verwendung der Verschiedenen Mime-Types zusammen. Dort steht, dass HTML-kompatibles XHTML als text/html alsgeliefert werden darf wärend alle anderen XHTML-Varianten nicht als text/html ausgeliefert werden sollten.
        Ich sehe das auch nicht so kritisch, wenn man XHTML 1.1 Dokumente hat und die alten Browsern unterschieben will, liefert man sie eben auch als text/html aus. Aber auf all diese Spitzfindigkeiten kommt es doch in dem Zusammenhang ohnehin nicht an.
        Eine Lösung für das Problem ist eben die Auslieferung als text/html.

        Grüße

        Daniel