toni: was hat es mit dem DOCTYPE im HTML auf sich???

Hi,
was hat es mit dem DOCTYPE im HTML auf sich???
Ich kapier das überhaupt nicht! Was es bringt.
Wie man es erstellt und den Sinn.

Kann mir das einer erklärn?

danke

  1. use Mosche;

    was hat es mit dem DOCTYPE im HTML auf sich???
    Ich kapier das überhaupt nicht! Was es bringt.
    Wie man es erstellt und den Sinn.

    Stell es dir so vor:

    HTML hat verschiedene Versionen. Verbreitet sind "heutzutage" die HTML 3.2- und verschiedene 4er-Versionen und XHTML. Der Doctype gibt dem Browser an, in welcher Sprachdefinition er nachschlagen muss.

    Technisch ausgedrückt:

    Jede HTML-Datei ist gleichzeitig eine XML-Datei. Der Doctype ist dazu da, die Sprachdefinition anzugeben, um festzustellen, dass der Sprachstandard HTML ist - d.h. technisch gesehen ist eine "HTML"-Datei ohne Doctype keine HTML-Datei, sondern nur irgendein Text - "HTML" wird es nur durch die Sprachdefinition (die Document Type Definition (DTD), die durch den Doctype referenziert wird).

    use Tschoe qw(Matti);

    1. hi

      Verbreitet sind "heutzutage" die HTML 3.2- und verschiedene 4er-Versionen und XHTML.

      wobei wohl mindestens 9 von 10 angeblichen "HTML 3.2"-Dokumenten damit nichts zu tun haben. Eine _echte_ HTML 3.2 Datei habe ich schon seit Jahren nicht mehr gesehen.

      Grüße aus Bleckede

      Kai

  2. hi

    was hat es mit dem DOCTYPE im HTML auf sich???
    Kann mir das einer erklärn?

    aber gerne doch.
    HTML ist eine SGML-Anwendung (bzw. neuerdings XML, was hier aber nur wenig ändert) zu der eine DTD gehört. In der DTD sind alle erlaubten Tags, Attribute und Attributwerte sowie deren Syntax genau festgelegt.
    Ein DOCTYPE ist ein Verweis, welche DTD nun zu benutzen ist. Ein DOCTYPE sieht zum Beispiel so aus:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    Dabei hat jeder Teil seine Bedeutung:
    "HTML" - hier geht's um HTML
    "PUBLIC" - Keyword, ist halt einfach da ;)
    "W3C" - Herausgeber der DTD ist das W3C
    "DTD HTML 4.01 Transitional" - das ist die genaue DTD-Version
    "EN" - die Sprache der DTD (NICHT DES INHALTES!, Häufiger Fehler)
    "http://www.w3.org/TR/html4/loose.dtd" - URL zur DTD, nicht required, wenn es sich um eine allgemein bekannte DTD handelt.

    In XML ändern sich 2 kleine Details:

    • da man hier <html> klein schreiben muss gehört auch das dazugehörige Keyword klein.
    • die URL kann in 2 Teile geteilt werden, dabei wird die DTD relativ zum xmlns=""-Attribut berechnet. Dieses Attribut akzeptiert derzeit übrigens nur diesen einen Wert, sonst kommt's zu einen Konflikt (klar, ist ja Teil der DTD-URL die eben eindeutig ist)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    in anderen Webstandards sieht dann der DOCTYPE auch anders aus, so wird SVG 1.1 dass hier bekommen:
    <!DOCTYPE svg PUBLIC "-//W3C/DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

    In der Praxis hatte der DOCTYPE lange keine Funktion, weil ein Browser immer von seiner "Haus-DTD" (meistens einer mehr oder weniger starken Abwandlung von HTML 3.2 oder HTML 4.0 Transitional) ausging. Inzwischen hat der DOCTYPE in immer mehr Browsern die Funktion die Fehlertolleranz zu veringern, die zu Zeiten des Browserwar ein Mass erreicht hat, das es den Herstellern fast unmöglich macht den Salat noch zu überblicken. Ganz grob kann man sagen, dass ein XHTML-DOCTYPE den Browser in den sog. Strict-Mode schaltet.

    Grüße aus Bleckede

    Kai

    1. hat es nachteile wenn man keinen DOCTYPE einsetzt???

      grüße

      1. hi

        hat es nachteile wenn man keinen DOCTYPE einsetzt???

        siehe Text, es hat zumindest keine Vorteile ihn wegzulassen. An die Regeln des W3C sollte man sich so oder so halten.

        Grüße aus Bleckede

        Kai

      2. Moin!

        hat es nachteile wenn man keinen DOCTYPE einsetzt???

        Ich würde sagen: Ja.

        Die neueren Browser (IE 6 und Mozilla) sind alle in der Lage, den sogenannten "Standards compliant mode" einzuschalten, bei dem sich das Layout streng an den Vorgaben vom W3C orientiert.

        Wird kein DOCTYPE angegeben (oder ein passender, um den "quirks mode" zu aktivieren), berücksichtigen die Browser (noch!) die Fehler, die ältere Versionen früher gemacht haben. Das will man aber eigentlich nicht mehr.

        Der Internet Explorer berechnet zum Beispiel seit Version 3.0 die Breite von Layern falsch, wenn sie im CSS mit width angegeben wird und gleichzeitig noch ein padding angegeben ist. Erst der IE 6 kriegt es jetzt endlich gebacken, im Standard-Modus die korrekte Berechnung durchzuführen.

        - Sven Rautenberg

    2. muss ein doctype überhaupt in jede html seite einer homepage?

      grüße

      1. Hallo!

        muss ein doctype überhaupt in jede html seite einer homepage?

        "Die Homepage" gibt es an sich nicht, bestenfalls noch in den <link>-Angaben.

        Das heißt, jedes HTML-Dokument muss/sollte einen Doctype haben, der durchaus von denen der anderen Seiten des Projekts divergieren kann (was allerdings selten sinnvoll ist).

        emu
        [...]

        1. hi

          Das heißt, jedes HTML-Dokument muss/sollte einen Doctype haben, der durchaus von denen der anderen Seiten des Projekts divergieren kann (was allerdings selten sinnvoll ist).

          Framesets ;)

          Grüße aus Bleckede

          Kai

          1. Hallo

            Das heißt, jedes HTML-Dokument muss/sollte einen Doctype haben, der durchaus von denen der anderen Seiten des Projekts divergieren kann (was allerdings selten sinnvoll ist).

            Framesets ;)

            Ich zitiere:

            (was allerdings selten sinnvoll ist).

            ;-)

            emu
            [das wird den strauß wieder ärgern]

  3. Hallo,

    was hat es mit dem DOCTYPE im HTML auf sich???

    Der DOCTYPE referenziert die so genannten DTD (Document Type Definiton), auf welcher das Dokument basiert.

    Darin werden u. a. die erlaubten Elemente und Attribute sowie die zulaessigen Elementinhalte (weitere Elemente und/oder #PCDATA) bzw. gueltige Attributwerte (variable oder feste Werte) deklariert. Hinzu kommen noch Entity-Definitionen.
    Zusammen genommen kann man das als Vokabular verstehen.

    Die Anzahl der Elemente (0x oder 1x, 0x oder beliebig oft, genau 1x), ihre Reihenfolge (welche Unterelemente sind erlaubt) und die Regeln der Verschachtelung bilden dagegen die Grammatik ab.

    In SGML-DTDs (also auch HTML) wird noch definiert, ob Elemente Start- und Endetags besitzen oder letztere ggf. optional sind. In XHTML sind abschließende Tags obligatorisch (da XML-Dialekt). Leere Elemente werden ueblicherweise mit einem "/" am Ende des Starttags abgeschlossen, z. B. <br /> oder <input />.

    MfG, Thomas