optionale Tags
willie.de
- html
Hallö ins Forum,
ich hatte kürzlich ne Frage bezüglich leerer Elemente gestellt http://forum.de.selfhtml.org/archiv/2005/5/t107320/#m666421. Danke für die Antworten! Da ich in den letzten Tagen nicht allzuviel Zeit hatte, stelle ich mal hier zwei Anschlussfragen:
1. Ist der W3C-Validator nicht (ausreichend) korrekt, wenn er mir meine "<br />" als HTML 4.01 Transitional durchgehen lässt?
2. Meine abgeschlossenen "<dd>" und "<dt>" werden ebenfalls bemängelt. Verstehe ich da optional und Die End-Tags </dt> und </dd> dürfen zwar auch fehlen, doch davon ist abzuraten. anders als es anscheinend richtig ist?
Danke für Unterstützung und
Grüße aus Leipzig
willie
Hi,
- Ist der W3C-Validator nicht (ausreichend) korrekt, wenn er mir meine "<br />" als HTML 4.01 Transitional durchgehen lässt?
http://www.w3.org/TR/html401/struct/text.html#edef-BR sagt menschenlesbar: "Start tag: required, End tag: forbidden", aber maschinenlesbar: "<!ELEMENT BR - O [...]". Es entspricht allerdings nicht meiner Erfahrung, dass dieses O dann tatsächlich als optional interpretiert wird.
- Meine abgeschlossenen "<dd>" und "<dt>" werden ebenfalls bemängelt.
Das Auftreten eines Fehlers lässt nicht unbedingt direkt auf die Ursache schließen. Vermutlich hast Du einen anderen Strukturfehler.
Verstehe ich da [...] anders als es anscheinend richtig ist?
Würde ich nicht sagen. Empfehlen würde ich allerdings, dass Du auf XHTML umsteigst - damit gibt es solche Probleme auf keinen Fall mehr.
Cheatah
Hi,
- Ist der W3C-Validator nicht (ausreichend) korrekt, wenn er mir meine "<br />" als HTML 4.01 Transitional durchgehen lässt?
Das liegt daran, daß für HTML SHORT_TAG YES gesetzt ist ==> der / schließt das Tag, das > ist freier Text.
An der Stelle, an der br-Elemente erlaubt sind, ist auch freier Text erlaubt.
Mach das gleiche mit einem meta-Element, und es gibt Probleme - im head ist kein freier Text erlaubt ==> der freie Text (das >) muß im body sein.
Da das schließende Tag von head und das öffnende tag von body optional sind, wird implizit der body geöffnet.
Kommt dann noch irgendein tag, das nur zum head gehören kann oder ein öffnendes body-tag, kommt die Fehlermeldung.
http://www.w3.org/TR/html401/struct/text.html#edef-BR sagt menschenlesbar: "Start tag: required, End tag: forbidden", aber maschinenlesbar: "<!ELEMENT BR - O [...]". Es entspricht allerdings nicht meiner Erfahrung, dass dieses O dann tatsächlich als optional interpretiert wird.
Du hast den entscheidenden Teil der Element-Definition weggekürzt, nämlich das EMPTY:
<!ELEMENT BR - O EMPTY>
http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.3.3 sagt:
The hyphen and the following "O" indicate that the end tag can be omitted, but together with the content model "EMPTY", this is strengthened to the rule that the end tag must be omitted.
cu,
Andreas
Hallö MudGuard,
danke für die ausführliche Erläuterung! Da werde ich wohl die "<br />" künftig in "<br>" umwandeln.
Es bleibt noch eine Frage:
Die Spezifikation sagt zu "<dt>" und "<dd>": Start tag: required, End tag: optional. Trotzdem werden abschließende Tags von http://www.htmlhelp.com/tools/validator/ als falsch bemängelt. http://validator.w3.org/ findet es korrekt. Was ist richtig?
Danke für Unterstützung und
Grüße aus Leipzig
willie
Hallö ins Forum,
Es bleibt noch eine Frage:
Mein Fehler, keine Frage mehr... (Ich Schlampe! ;)
Danke für Unterstützung und
Grüße aus Leipzig
willie
Hi,
Das liegt daran, daß für HTML SHORT_TAG YES gesetzt ist ==> der / schließt das Tag, das > ist freier Text.
das habe ich übersehen,
The hyphen and the following "O" indicate that the end tag can be omitted, but together with the content model "EMPTY", this is strengthened to the rule that the end tag must be omitted.
und das gelernt. Bisher habe ich EMPTY immer nur als Content-Modell angesehen, ohne weitere Einflüsse. Danke für die Aufklärung.
Cheatah
Hallö Cheatah!
http://www.w3.org/TR/html401/struct/text.html#edef-BR sagt menschenlesbar: "Start tag: required, End tag: forbidden", aber maschinenlesbar: "<!ELEMENT BR - O [...]". Es entspricht allerdings nicht meiner Erfahrung, dass dieses O dann tatsächlich als optional interpretiert wird.
Ich habe mich da vielleicht unklar ausgedrückt. Dass <br> keinen Endtag hat, ist klar.
Meine Frage ist, ob der W3C-Validator fehlerhaft ist, wenn er "<br />" in 4.01 Trans als korrekt ansieht.
Vermutlich hast Du einen anderen Strukturfehler.
Das kann ich ausschließen.
Danke für Unterstützung und
Grüße aus Leipzig
willie
Hallö nochmal,
Vermutlich hast Du einen anderen Strukturfehler.
Das kann ich ausschließen.
Du hattest recht! Ein Faselfehler...
Danke für Unterstützung und
Grüße aus Leipzig
willie