Der Alex.: Ist "<element />" eigentlich richtig valides HTML 4.01?

Schönen guten Abend!

Schnell mal 'ne Frage:
Sind Formulierungen wie z.B. "<br />" eigentlich auch valides HTML 4.01?
Ja, XHTML schon, und sie werden von HTML-Browsern auch "normal" behandelt. Aber ist es laut HTML-4.01-Definition erlaubt, alleinstehende Elemente ohne End-Tag so zu schreiben?

Schönes Wochenendeende
 Der Alex.

  1. Hallo.

    Sind Formulierungen wie z.B. "<br />" eigentlich auch valides HTML 4.01?

    Schreib eine kleine Seite und validiere sie. das Ergebnis darfst du gern kundtun :-)
    MfG, at

    1. Moin!

      Sind Formulierungen wie z.B. "<br />" eigentlich auch valides HTML 4.01?

      Schreib eine kleine Seite und validiere sie. das Ergebnis darfst du gern kundtun :-)

      Dann tue ich das hiermit.
      Also, habe eine kleine HTML-4.01-Transitional-Seite geschrieben und vom W3C-Validator checken lassen.
      Bei <meta ... /> meckert er, bei <br /> und <hr /> gibt er KEINE Fehlermeldung aus!

      Hat das vielleicht mit Transitional zu tun?

      Gruß
       Der Alex.

      1. Hallo.

        Dann tue ich das hiermit.

        Danke :-)

        Hat das vielleicht mit Transitional zu tun?

        Was sagt der Validator denn zur gleichen Seite als "strict"?
        MfG, at

        1. Tach.

          Was sagt der Validator denn zur gleichen Seite als "strict"?

          Weiß nicht, habe die Datei schon wieder gelöscht. Ich "programmiere" im Moment aber sowieso nur 'transitional' bzw. 'frameset'.

          Gruß, d.A.

      2. Hallo Alex,

        Bei <meta ... /> meckert er, bei <br /> und <hr /> gibt er KEINE Fehlermeldung aus!

        Logisch, siehe meinen Beitrag; in <head> ist kein normaler Text erlaubt, was > mit einschließt.

        Hat das vielleicht mit Transitional zu tun?

        Dass <hr /> akzeptiert wird: ja. Dass <meta /> nicht akzeptiert wird: nein. (das ist bei allen HTML 4 DTDs der Fall)

        Viele Grüße,
        Christian

        1. Tag Christian.

          Bei <meta ... /> meckert er, bei <br /> und <hr /> gibt er KEINE Fehlermeldung aus!

          Logisch, siehe meinen Beitrag; in <head> ist kein normaler Text erlaubt, was > mit einschließt.

          Hat das vielleicht mit Transitional zu tun?

          Dass <hr /> akzeptiert wird: ja. Dass <meta /> nicht akzeptiert wird: nein. (das ist bei allen HTML 4 DTDs der Fall)

          Danke.
          Ich meinte, irgendwo gelesen zu haben, daß HTML in der Version 4.01 so erweitert worden sei, daß man quick close nach XML-Stil auch verwenden könne, ohne daß das HTML invalide (hm, vielleicht ein blödes Wort dafür - besser: ungültig) werde.
          Bist Du sicher, daß das nicht irgendwie geht? Schade.

          Schöne Grüße
           Der Alex.

          P.s.: Wenn ich mein Beispiel als HTML 4.01 strict deklariere, kommen die Fehlermeldungen. (Hab's eben doch noch mal probiert.)

          1. Hallo Alex,

            Ich meinte, irgendwo gelesen zu haben, daß HTML in der Version 4.01 so erweitert worden sei, daß man quick close nach XML-Stil auch verwenden könne, ohne daß das HTML invalide (hm, vielleicht ein blödes Wort dafür - besser: ungültig) werde.

            Nein. Allerdings interpretieren alle Browser im Moment HTML so, dass es kein Problem darstellt.

            Bist Du sicher, daß das nicht irgendwie geht?

            Du kannst doch die XHTML 1.0 DTD nehmen, dann sind die Seiten valide. XHTML 1.0 Framset bzw. XHTML 1.0 Transitional unterscheiden sich nur dadurch von ihren HTML 4.01 Pendants, dass sie auf XML und nicht auf SGML aufgebaut sind, also z.B. schließende Tags notwendig sind. Alte Browser interpretieren das als HTML 4.01, aber halt nicht vollständig richtig, was dann zu keinen Problemen führt.

            Viele Grüße,
            Christian

            1. Hallo.

              Du kannst doch die XHTML 1.0 DTD nehmen, dann sind die Seiten valide. XHTML 1.0 Framset bzw. XHTML 1.0 Transitional unterscheiden sich nur dadurch von ihren HTML 4.01 Pendants, dass sie auf XML und nicht auf SGML aufgebaut sind, also z.B. schließende Tags notwendig sind. Alte Browser interpretieren das als HTML 4.01, aber halt nicht vollständig richtig, was dann zu keinen Problemen führt.

              Wirklich zu "keinen", oder zu "kleinen"?
              MfG, at

              1. Hallo at,

                Wirklich zu "keinen", oder zu "kleinen"?

                Zu keinen, solange man die Kompabilitätsrichtlinien beachtet, zu kleinen, wenn man dies nicht tut.

                Viele Grüße,
                Christian

            2. Hello again.

              Du kannst doch die XHTML 1.0 DTD nehmen, dann sind die Seiten valide. XHTML 1.0 Framset bzw. XHTML 1.0 Transitional unterscheiden sich nur dadurch von ihren HTML 4.01 Pendants, dass sie auf XML und nicht auf SGML aufgebaut sind, also z.B. schließende Tags notwendig sind. Alte Browser interpretieren das als HTML 4.01, aber halt nicht vollständig richtig, was dann zu keinen Problemen führt.

              Leider muß man bei XHTML aber die Script- und Style-Bereiche so komisch maskieren (Probleme mit etwas älteren Browsern) und inhaltsleeren Attributen einen Wert zuweisen (finde ich persönlich etwas doof).
              V.a. das Maskieren (oder sollte ich besser "Markieren" sagen) mißfällt mir sehr. Obendrein habe ich proprietäre Befehle verbaut, auf die ich nicht verzichten mag.

              Schönen Gruß
               Alex.

  2. Hallo Alex,

    Sind Formulierungen wie z.B. "<br />" eigentlich auch valides HTML 4.01?

    Jain.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <title>Hallo</title>
    <hr>

    ist valide,

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <title>Hallo</title>
    <hr />

    nicht,

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <title>Hallo</title>
    <p>
    <br />
    </p>

    dagegen schon.

    Allerdings müsste das dritte Beispiel in einem vollkommen HTML konformen Browser (ich kenne keinen ;-)) wie folgt interpretiert werden:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <title>Hallo</title>
    <p>
    <br>>
    </p>

    Deswegen ist auch das zweite Beispiel invalide, da innerhalb von <body> in HTML 4.01 kein Textinhalt vorkommen darf. Das ganze nennt sich tag minimalization.

    <p/Hallo/

    sollte laut HTML 4.01, das ja auf SGML aufbaut, wie <p>Hallo</p> interpretiert werden.

    Ich kenne jedoch keinen Browser, der das richtig interpretiert. Deswegen ist es auch möglich, XHTML 1.0 als text/html auszuliefern, denn die Browser können dieses SGML-Feature (glücklicherweise) nicht.

    Aber ist es laut HTML-4.01-Definition erlaubt, alleinstehende Elemente ohne End-Tag so zu schreiben?

    Bei <br>, <hr>, <meta>, etc. _darfst_ Du in HTML 4.01 keinen Endtag schreiben.

    Viele Grüße,
    Christian

    1. Hallo nochmal,

      [...] da innerhalb von <body> in HTML 4.01 kein Textinhalt vorkommen darf. [...]

      Ähm, ich meinte natürlich HTML 4.01 *Strict*.

      Viele Grüße,
      Christian