Christian SCHUBERT: Was bewirkt ein Doctype?

Was bewirkt eigentlich ein DOCTYPE, bzw. welche (negativen) Auswirkungen hat es, wenn man es weglässt? Habe nachgelesen und bin zur Erkenntnis gekommen, dass es die Struktur von HTML-, bzw. XHTML-Sites bestimmt und Auszeichnungsprobleme löst. (?) Dennoch; - gilt das Weglassen eines DOCTYPES als unprofessionell? Kann irgendwer das Wirken und den Nutzen eines DOCTYPES PRAXISNAH und ANFÄNGERGERECHT in ev. zwei kurzen, prägnanten Sätzen vielleicht zusammenfassen? Vielen Dank für eure Hilfe!

  1. Hallo Christian.

    Kann irgendwer das Wirken und den Nutzen eines DOCTYPES PRAXISNAH und ANFÄNGERGERECHT in ev. zwei kurzen, prägnanten Sätzen vielleicht zusammenfassen?

    Beim Verzicht auf den DOCTYPE kann das jeweilige Dokument nicht validiert werden.

    Beim Verzicht auf den DOCTYPE fallen diverse Browser in den Quirksmodus, was fehlerhaftes CSS-Rendering zur Folge hat.

    Einen schönen Montag noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    debian/rules
  2. Der Doctype sagt welche Version HTML du verwendest. Lässt Du sie weg muss der Browser raten und macht evtl. nicht das was er soll. Deswegen ist darauf zu achten dass man sich für eine Version entscheidet und dieser entsprechend seine Tags verwendet. Wenn der Browser diesbezüglich raten soll ist nie gut. Kostet ja nichts ihm zu sagen was Sache ist.

    1. @ J. Be: hatte da folgendes Problem mit einem Doctype, als ich einen Text vertikal wie horizontal GENAU in der Fenstermitte platzieren wollte. OHNE Doctype klappte es, MIT NICHT.

      Siehe Dateien:

      http://lernen-mit-medien.com/why/top.htm
      http://lernen-mit-medien.com/why/center.htm

      Die HTML-Codes beider Seiten sind ident; - erstere weist ein DOCTYPE auf, zweitere nicht. Benutze ich einfach das falsche Doctype?

      1. Hallo Christian.

        @ J. Be: hatte da folgendes Problem mit einem Doctype, als ich einen Text vertikal wie horizontal GENAU in der Fenstermitte platzieren wollte. OHNE Doctype klappte es, MIT NICHT.

        Siehe Dateien:

        http://lernen-mit-medien.com/why/top.htm
        http://lernen-mit-medien.com/why/center.htm

        Die HTML-Codes beider Seiten sind ident; - erstere weist ein DOCTYPE auf, zweitere nicht. Benutze ich einfach das falsche Doctype?

        Nein, nur die falsche Vorgehensweise in Form einer überflüssigen Layouttabelle.

        Horizontale Zentrierung von Blockelementen sollte klar sein (margin:auto + Breitenangabe).

        Für die vertikale Zentrierung verwendest du entweder eine entsprechend großen Wert für http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm#line_height@title=line-height zuzüglich http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm#vertical_align@title=vertical-align:middle oder du setzt http://de.selfhtml.org/css/eigenschaften/innenabstand.htm@title=padding geschickt ein.

        Einen schönen Dienstag noch.

        Gruß, Mathias

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        debian/rules
        1. Hallo, und danke für das späte Engagement!

          Habe deinen Rat befolgt und line-height mit vertical-align kombiniert:

          http://lernen-mit-medien.com/why/vertical.htm

          Ergebnis: Der Text weigert sich nach wie vor beharrlich in die vertikale Mitte zu rücken... was mache ich falsch?

          1. Hallo Christian.

            Ergebnis: Der Text weigert sich nach wie vor beharrlich in die vertikale Mitte zu rücken... was mache ich falsch?

            Schau dir am besten einma die in diesem Thread verlinkten Beispiele an.

            Einen schönen Dienstag noch.

            Gruß, Mathias

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            debian/rules
      2. @ J. Be: hatte da folgendes Problem mit einem Doctype, als ich einen Text vertikal wie horizontal GENAU in der Fenstermitte platzieren wollte. OHNE Doctype klappte es, MIT NICHT.

        Siehe Dateien:

        http://lernen-mit-medien.com/why/top.htm
        http://lernen-mit-medien.com/why/center.htm

        Die HTML-Codes beider Seiten sind ident; - erstere weist ein DOCTYPE auf, zweitere nicht. Benutze ich einfach das falsche Doctype?

        Genaugenommen richtest Du es ja nur horizontal aus. Für die vertikale machst Du ja keine Angabe. Aus einem mir nicht bekannten Grund richten die Browser (zumindest IF und FF) im "Rate-Modus" das ganze dann in der Mitte der Tabelle aus. Explizit gesagt hat ihnen das niemand, jedenfalls nicht via HTML oder CSS. Sobald sie wissen dass es sich um HTML4.01 handelt wird alles oben ausgerichtet.

        1. Moin,

          Genaugenommen richtest Du es ja nur horizontal aus. Für die vertikale machst Du ja keine Angabe. Aus einem mir nicht bekannten Grund richten die Browser (zumindest IF und FF) im "Rate-Modus" das ganze dann in der Mitte der Tabelle aus. Explizit gesagt hat ihnen das niemand, jedenfalls nicht via HTML oder CSS.

          oh doch, denn das Browser-Stylesheet gibt vertical-align:middle; als Standard für td vor. Tabelleninhalte sind dadurch, wenn man nichts dagegen unternimmt, immer vertikal zentriert.

          Sobald sie wissen dass es sich um HTML4.01 handelt wird alles oben ausgerichtet.

          Nein. Sobald sie wissen, dass es sich um HTML 4.01 handelt, das möglichst standardkonform interpretiert werden soll (nicht im Quirks-Mode), wird z.B. das height-Attribut für eine Tabelle ignoriert. Und eine CSS-Höhenangabe bezieht sich dann auch nur noch auf das Elternelement, und nicht mehr automatisch auf das gesamte Browserfenster. Das Elternelement ist dagegen, wenn es keine eigene Höhenangabe hat, nur so hoch wie sein Inhalt.
          Und vertikale Zentrierung in einem Element, das nicht größer ist als sein Inhalt, fällt nun einmal nicht auf ...

          Schönen Tag noch,
           Martin

          --
          Die meisten Menschen werden früher oder später durch Computer ersetzt.
          Für manche würde aber auch schon ein einfacher Taschenrechner genügen.