Kein abschließendes Tag
MKay
- html
Hi,
wie ihr ja wisst, gibt es HTML-Elemente ohne abschließendes Tag, z.B. <br /> oder <input ... />.
Wie ihr seht, schreibe ich einen Slash vor der abschließenden spitzen Klammer. Nun habe ich mein Dokument mal durch den Validator vom W3C und dem Validator von selfhtml laufen lassen. Der W3C-Validator sagt "valides HTML", der selfhtml-Validator jedoch meckert wegen den Slashes, da die angeblich nur in XHTML erlaubt sind (PS: Ich habe eine HTML 4.01 Transitional DTD).
Was ist denn nun richtig?
Soll ich die Slashes weglassen, oder stattdessen eine XHTML-DTD verwenden?
Gruss
MKay
Hi
Was ist denn nun richtig?
XHTML mit, HTML ohne Slashes.
Grüße
Ole
(8-)>
Hehe, ok, soweit war ich auch :)
Aber worin liegt der Unterschied? Bzw. was würdest du empfehlen/nehmen?
Gruss
MKay
Hallo Mkay,
Hehe, ok, soweit war ich auch :)
Aber worin liegt der Unterschied?
http://de.selfhtml.org/html/xhtml/unterschiede.htm
Bzw. was würdest du empfehlen/nehmen?
Bei XHTML handelt es sich um XML-Dokumente. Das hat den Vorteil, dass du es mit allen XML-Programmen verarbeiten kannst. Ansonsten bleibt, dass die Anforderungen an ein valides XHTML-Dokument strenger als bei HTML sind, sodass der Validator einen zu sauberer Syntax zwingt.
Schöne Grüße,
Johannes
Hi,
wie ihr ja wisst, gibt es HTML-Elemente ohne abschließendes Tag, z.B. <br /> oder <input ... />.
Wie ihr seht, schreibe ich einen Slash vor der abschließenden spitzen Klammer. Nun habe ich mein Dokument mal durch den Validator vom W3C und dem Validator von selfhtml laufen lassen. Der W3C-Validator sagt "valides HTML", der selfhtml-Validator jedoch meckert wegen den Slashes, da die angeblich nur in XHTML erlaubt sind (PS: Ich habe eine HTML 4.01 Transitional DTD).
der / beendet bereits das tag (nach HTML-Spezifikation). Ein korrekter Browser müßte also das > im Text anzeigen.
Da an den Stellen, an denen br- oder input-Elemente erlaubt sind, auch Text erlaubt ist, gibt es keine Fehlermeldung.
Mach das bei einem Element an einer Stelle, an der kein Text erlaubt ist, und der Validator wird Fehler melden (wenn auch ggf. andere als erwartet).
Probier es mal bei einem meta-Element aus.
Da im head-Element kein Text erlaubt ist, wird implizit das head-Element geschlossen und das body-Element geöffnet (die entsprechenden tags sind optional).
Weitere meta- oder ein title-Element werden also zu Fehlern ("Element hier nicht erlaubt", da diese ja nur im head erlaubt sind, aber implizit der Body begonnen wurde) führen, ebenso ein schließendes head-tag oder öffnendes body-tag ...
Die meisten (alle?) Browser ignorieren jedoch den / in HTML-Tags und nehmen fälschlicherweise das > als Ende des Tags.
cu,
Andreas
Okay, thx.
Also sollte ich deiner Meinung nach den Slash rauswerfen und die DTD bei HTML belassen (kein XHTML), richtig?
Hallo,
Also sollte ich deiner Meinung nach den Slash rauswerfen und die DTD bei HTML belassen (kein XHTML), richtig?
Ich würde dir raten: Arbeite mit HTML 4.01 (am besten Strict).
Einerseits werden die meisten XHTML-Dokumente von den Browsern sowieso als normales HTML verarbeitet (womit alle XHTML-Vorteile wegfallen), was sich auch nicht mehr ändern wird!
Andererseits würden viele Probleme entstehen, wenn man als HTML verarbeitetes XHTML plötzlich als echtes XHTML verarbeiten lassen würde.
Die strengen Syntaxregeln von XML greifen bei jedem noch so kleinen Fehler, davon gibt es im Web mehr als genug.
Das Dokument würde anders geparst werden. So befindet sich in HTML z.B. automatisch ein tbody-Element um alle tr-Elemente, auch wenn dieses im Quelltext selbst gar nicht vorhanden ist.
Verschiedene Stylesheets würden plötzlich anders arbeiten, denn die zahlreichen Ausnahmeregelungen für HTML gelten in XHTML nicht.
Zahlreiche DOM-1-Methoden könnten nicht mehr verwendet werden. Die DOM-2-Methoden, die stattdessen verwendet werden sollen, sind aber z.B. im Internet Explorer noch gar nicht implementiert.
Achte beim Schreiben des Quelltextes einfach auf guten Stil und einen Editor mit Syntaxhervorhebung, dann sollten auch die meisten Fehlerchen schnell gefunden werden. Diese sind der einzige Nachteil von HTML gegenüber XHTML.
Gruß;