luckymoon: DTD Typen

Hallo an alle,

ich habe mal eine Frage zu diesen DTD Typen.

Für was, soll dieses eigentlich gut sein?
Mir persönlich ist aufgefallen (speziell was Tabellen betrifft), das ich ohne diese Angabe, viel problemloser arbeiten kann.
Ich habe mal Vergleiche gestartet und war "erschrocken", das die Angabe echt was ausmacht und meiner Meinung nach, eher im Negativen Sinne.

Hier mal ein, Beispiel (wurde beim IE6.0 und Netscape7.1 getestet):
test1.htm (mit dtd-typ)
----------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
</head>

<body style="margin:0px;overflow-x:hidden;overflow-y:hidden;">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
  <tr bgcolor="#339900">
    <td align="center">&nbsp;</td>
  </tr>
</table>
</body>
</html>
----------------------------------------------------------------

test2.htm (ohne dtd-typ)
----------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
</head>

<body style="margin:0px;overflow-x:hidden;overflow-y:hidden;" onLoad="MM_preloadImages('images/inhaberprofil_grau.gif','images/kooperationspartner_grau.gif','images/leistungsspektrum_grau.gif','images/kontakt_grau.gif','images/links_grau.gif')">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
  <tr bgcolor="#339900">
    <td align="center">&nbsp;</td>
  </tr>
</table>
</body>
</html>
----------------------------------------------------------------

Ich hoffe, einer von Euch kann mir eine logische Erklärung dafür geben.

MfG
Luckymoon

  1. ehm, ups...
    hier noch mal test2.htm

    test2.htm (ohne dtd-typ)
    ----------------------------------------------------------------
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Unbenanntes Dokument</title>
    </head>

    <body style="margin:0px;overflow-x:hidden;overflow-y:hidden;">
    <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
      <tr bgcolor="#339900">
        <td align="center">&nbsp;</td>
      </tr>
    </table>
    </body>
    </html>

  2. Hi,

    Für was, soll dieses eigentlich gut sein?

    mit einer DTD weiß der Client, welche Art Code auf ihn zukommt. Ohne muss er raten.

    Mir persönlich ist aufgefallen (speziell was Tabellen betrifft), das ich ohne diese Angabe, viel problemloser arbeiten kann.

    Dann kann ich Dir garantieren, dass Du bei der Erstellung Deines Codes etwas Grundsätzliches sehr, sehr falsch machst. Ohne DTD heißt, dass der Browser im Quirks-Mode arbeitet: Er rechnet verstärkt mit Fehlern seitens des Autors.

    Ich habe mal Vergleiche gestartet und war "erschrocken", das die Angabe echt was ausmacht und meiner Meinung nach, eher im Negativen Sinne.

    Ich finde es nicht negativ, in einem überaus technischen Metier technische Mängel weniger zu verzeihen. Im Gegenteil. Wer Fehler korrigiert, verfälscht auch Richtiges.

    <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
      <tr bgcolor="#339900">
        <td align="center">&nbsp;</td>
      </tr>
    </table>

    Ein erheblicher Mangel dieses Codes ist, dass es sich nicht um tabellarische Daten handelt, eine Tabelle also durch nichts zu rechtfertigen ist. Ein weiterer ist, dass Du Darstellungsempfehlungen im HTML- statt im CSS-Code vermittelst. Der schwerwiegendste Mangel ist jedoch, dass der Code invalide ist. Selbstverständlich wird ein Browser nicht das darstellen, was Du gerne hättest.

    test2.htm (ohne dtd-typ)

    Hier liegen die selben Probleme vor. Durch puren Zufall entsprechen die Fehlerkorrekturroutinen, mit denen der Browser nun das System belastet, in etwa dem, was Du erwartest.

    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. Hi,

      Ohne DTD heißt, dass der Browser im Quirks-Mode arbeitet

      was aber auch abhängig vom Doctype und dem Browser ist. Nur ohne Doctype geht jeder Browser stets in den quirks mode, so er einen hat.

      freundliche Grüße
      Ingo

    2. Hmmm...
      Irgendwie muss ich luckymoon TEILWEISE Recht geben.

      @Cheatah
      Stimmt CSS ist dabei, das hast du richtig erkannt. Aber dieses bewirkt nur, dass das Layout von ganz oben anfängt und nicht außen herum einen Rand lässt. Das CSS hat nichts mir der Tabelle zu tun. Ignoriere das einfach mal.

      Mir ist es auch ein Rätsel, warum das dtd-dokument die Tabelle nicht korrekt "width="100%" height="100%" darstellt.

      Ein erheblicher Mangel dieses Codes ist, dass es sich nicht um
      tabellarische Daten handelt

      klar, luckymoon sagte ja bereist, das dies ein Beispiel sei... *kopfschüttel*

      1. hi,

        Mir ist es auch ein Rätsel, warum das dtd-dokument die Tabelle nicht korrekt "width="100%" height="100%" darstellt.

        ein height-attribut existiert für table überhaupt nicht, und im standardkonformen modus halten sich die browser da auch eher dran, in dem sie eben diese ungültige angabe _nicht_ umsetzen.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      2. Hi,

        Mir ist es auch ein Rätsel, warum das dtd-dokument die Tabelle nicht korrekt "width="100%" height="100%" darstellt.

        Wie soll etwas falsches richtig dargestellt werden?

        table hatte nie ein height-Attribut und wird es vermutlich auch nie haben.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      3. Hi,

        Mir ist es auch ein Rätsel, warum das dtd-dokument die Tabelle nicht korrekt "width="100%" height="100%" darstellt.

        Weil neuere Browser das inoffizielle HEIGHT ignorieren und man stattdessen mit CSS arbeiten müßte, was wiederum alte Browser nicht verstehen, für die man deswegen HEIGHT drinläßt (also <table height="100% style="height:100%;" ...>), was wiederum gebietet, auf eine DTD zu verweisen, die HEIGHT zuläßt, was aber sinnlos ist und man sich den DOCTYPE dann gleich ganz sparen kann, was zur Folge hat, daß auch Browser, die HEIGHT gar nicht mehr interpretieren sollten, es ggf. doch tun.

        Ist doch ganz einfach! >;->

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
    3. Der schwerwiegendste Mangel ist jedoch, dass der Code invalide ist.

      test2.htm (ohne dtd-typ)
      Hier liegen die selben Probleme vor.

      Cheatah,
      Ohne DTD kann der Code gar nicht valide sein. ;-b
      Gunnar

      --
      „Solang wir noch tanzen können
      und richtig echte Tränen flennen,
      ist noch alles offen,
      ist noch alles drin.“
      (Gundermann)
      1. Hi,

        Ohne DTD kann der Code gar nicht valide sein. ;-b

        Allerdings brauchte HTML ursprünglich keine DTD-Angabe.

        Der DOCTYPE ist erst im Laufe der Weiterentwicklung dazugekommen ...

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        1. Hi,

          Ohne DTD kann der Code gar nicht valide sein. ;-b

          Allerdings brauchte HTML ursprünglich keine DTD-Angabe.
          Der DOCTYPE ist erst im Laufe der Weiterentwicklung dazugekommen ...

          Also in HTML 2.0 (http://www.ietf.org/rfc/rfc1866.txt?number=1866 - November 1995) war er schon Pflicht:

          3.3. HTML Public Text Identifiers

          To identify information as an HTML document conforming to this
             specification, each document must start with one of the following
             document type declarations.

          Noch ältere Versionen hab ich nicht in meiner Sammlung ...

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. Hi,

            Noch ältere Versionen hab ich nicht in meiner Sammlung ...

            Eben.

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. Hallo Cybaer,

              Noch ältere Versionen hab ich nicht in meiner Sammlung ...
              Eben.

              Wenn ich mich recht erinnere, hast Du Dich schon häufiger auf die apokryphen »HTML 1.0« Spezifikation bezogen. Ein Bitte: Wenn Du die zur Verfügung hast, würdest Du die dann mal bereitstellen? Hier sind welche neugierig. ;)

              Tim

              1. Hi,

                Wenn ich mich recht erinnere, hast Du Dich schon häufiger auf die apokryphen »HTML 1.0« Spezifikation bezogen. Ein Bitte: Wenn Du die zur Verfügung hast, würdest Du die dann mal bereitstellen? Hier sind welche neugierig. ;)

                Such mal im Archiv. Da wollte vor kurzem mal jemand wissen, wie es mit HTML losging.

                Aber die im Thread zutage geförderten Tags der allerersten HTML-Version (aus der "historischen Ecke" der W3C-Site) waren sogar noch vor meiner Zeit. =:-)

                Ich selbst habe dazu nichts mehr. Selbst die Bücher aus der Zeit sind bereits allesamt entsorgt ... :-/

                ... glaube ich wenigstens. Ich schau aber mal in den Umzugskartons im Keller nach!

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          2. Hi,

            und BTW:

            To identify information as an HTML document conforming to this
               specification,

            nicht "To identify information as an HTML document, each document must start ..."

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
        2. Cybaer,

          Allerdings brauchte HTML ursprünglich keine DTD-Angabe.

          Selbst wenn das stimmen sollte, ändert das nichts an meiner Aussage

          Ohne DTD kann der Code gar nicht valide sein. ;-b

          Wogegen willst du denn validieren, wenn nicht gegen eine DTD?
          Gunnar

          --
          „Solang wir noch tanzen können
          und richtig echte Tränen flennen,
          ist noch alles offen,
          ist noch alles drin.“
          (Gundermann)
          1. Hi,

            Selbst wenn das stimmen sollte, ändert das nichts an meiner Aussage

            Nein, warum sollte es auch? =;-)

            Ohne DTD kann der Code gar nicht valide sein. ;-b
            Wogegen willst du denn validieren, wenn nicht gegen eine DTD?

            Gegenfrage: Wer zwingt Dich, den Code zu validieren? Der HTML-Browser tut es jedenfalls nicht. Ein SGML-Browser hingegen validiert SGML-Code.

            Das Validierung prinzipiell sinnvoll/hilfreich ist, steht auf einem anderen Blatt ...

            Gruß, Cybaer

            --
            Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            1. Cybaer,

              Gegenfrage: Wer zwingt Dich, den Code zu validieren?

              Niemand. Cheatah hätte es gern.
              Gunnar

              --
              „Solang wir noch tanzen können
              und richtig echte Tränen flennen,
              ist noch alles offen,
              ist noch alles drin.“
              (Gundermann)
              1. Hi,

                Niemand. Cheatah hätte es gern.

                Schön für ihn. ;)

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
            2. Hallo Cybaer,

              Gegenfrage: Wer zwingt Dich, den Code zu validieren? Der HTML-Browser tut es jedenfalls nicht.

              Unter neue Entwicklungen zu verbuchen: Wenn man XHTML als XHTML und nicht im HTML Kompabilitätsmodus versendet, so sind UAs meines Wissens nach nach den XML Regeln angehalten bei jeglichen Fehlern, also z.B. auch fehlender Validität, die Verarbeitung abzubrechen.

              Tim

              1. Hi,

                Unter neue Entwicklungen zu verbuchen: Wenn man XHTML als XHTML und nicht im HTML Kompabilitätsmodus versendet, so sind UAs meines Wissens nach nach den XML Regeln angehalten bei jeglichen Fehlern, also z.B. auch fehlender Validität, die Verarbeitung abzubrechen.

                Auch wenn das nicht alle XHTML-Browser tun: XHTML ist halt nicht HTML.

                Davon abgesehen: Es gab da beim W3C wohl einen ziemlichen Streit, ob XHTML-Dateien wirklich valide sein müssen oder ob es reicht, daß sie wohlgeformt sind.

                IIRC hat man sich im Allgemeinen auf "wellformed" besonnen ("Der Geist ist willig, doch ..." ;-)).

                Gruß, Cybaer

                --
                Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  3. hi,

    ich habe mal eine Frage zu diesen DTD Typen.

    Für was, soll dieses eigentlich gut sein?

    wenn dir http://de.selfhtml.org/html/allgemein/grundgeruest.htm#dokumenttyp als erklärung noch nicht reicht, dann beschäftige dich auch mal mit http://www.heise.de/ix/artikel/2004/03/136/.

    Mir persönlich ist aufgefallen (speziell was Tabellen betrifft), das ich ohne diese Angabe, viel problemloser arbeiten kann.

    später wird dir dann auffallen, dass du in den meisten fällen vermutlich eh nicht mit tabellen arbeiten wolltest, und dass die "probleme" dabei durch korrekte DTD wahrscheinlich auch noch in deinem code lagen.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  4. Hi,

    Für was, soll dieses eigentlich gut sein?

    Die DTD gibt an, welche Elemente wo verwendet werden dürfen oder müssen.

    Ich habe mal Vergleiche gestartet und war "erschrocken", das die Angabe echt was ausmacht

    Ja, allerdings spielt die DTD dabei keinerlei Rolle. Hier wird nur DOCTYPE für etwas mißbraucht, für das es nie gedacht war - und dabei wird ggf. auch noch gepfuscht.

    Ich hoffe, einer von Euch kann mir eine logische Erklärung dafür geben.

    Das können die Entwickler, die den DOCTYPE mißbrauchen, auch nicht. :->

    Der 2. Link, den Wahsaga gepostet hat, sollte dich hinreichend aufklären.

    Gruß, Cybaer (auf den DOCTYPE prinzipiell verzichtend - ist eh nicht unbedingt notwendig)

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  5. hello again,

    erstmal danke an alle für die zahlreichen antworten (nicht erwartet hätte).

    okay, ich hab jetzt eingesehen, dass das dtd wichtig ist (man kann ja net alles wissen). ;)

    nun bin ich etwas ratlos und frage euch, wie dieses layout am besten regeln kann. in frames??? was meint ihr

    hier das layout: http://home.arcor.de/ichigo-mew/800x600.gif

    1. hi,

      nun bin ich etwas ratlos und frage euch, wie dieses layout am besten regeln kann. in frames??? was meint ihr

      hier das layout: http://home.arcor.de/ichigo-mew/800x600.gif

      </faq/#Q-19>, danke.

      das nennst du ein "layout"? *staun*

      gruß,
      wahsaga

      --
      "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      1. </faq/#Q-19>, danke.

        das nennst du ein "layout"? *staun*

        gruß,
        wahsaga

        bist du immer so kleinig?!

        na klar, hab ich den inhalt rausgenommen. muss ja net alles hier veröffentlichen... man man man

        1. hi,

          na klar, hab ich den inhalt rausgenommen.

          dann sag das doch auch dazu.
          dass du problem hast, ein paar solcher umrahmter boxen hinzubekommen, hatte ich eigentlich für jenseits des möglichen gehalten.

          muss ja net alles hier veröffentlichen...

          lass mich raten, hochgeheimes "kundenprojekt"?
          *rotfl*

          gruß,
          wahsaga

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
          1. hi,
            dann sag das doch auch dazu.
            dass du problem hast, ein paar solcher umrahmter boxen hinzubekommen, hatte ich eigentlich für jenseits des möglichen gehalten.
            lass mich raten, hochgeheimes "kundenprojekt"?
            *rotfl*
            gruß,
            wahsaga

            kein kommentar. ist mir echt zu blöd...

    2. Tag luckymoon.

      nun bin ich etwas ratlos und frage euch, wie dieses layout am besten regeln kann. in frames??? was meint ihr

      Nein, keine Frames. Du willst nebeneinander mehrere Bereiche haben, das Einfachste wäre eine Tabelle, das (vermutlich) semantisch Korrekte mehrere Blockelemente (DIV oder P), die du mit Hilfe von CSS nebeneinander anordnest. Dein Einstieg hierzu wäre das Kapitel Positionieren von Elementen mit Hilfe von CSS, dort insbesondere die float-Eigenschaft.

      Also, frisch ans Werk, junger Freund! Wenn du nicht weiterkommst, frage einfach in diesem Thread noch mal nach.

      [dsf 3.6]
      Siechfred

      --
      »Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«
      1. Hallo,

        nun bin ich etwas ratlos und frage euch, wie dieses layout am besten regeln kann. in frames??? was meint ihr

        Für die horizontale Navigation könntest du Listen benutzen (http://css.maxdesign.com.au/listamatic/index.htm).

        Mit freundlichen Grüßen

        André