Moin!
Ach so!? Das heißt, die "strengen" XHTML-Regelungen (nicht-überschneidene Tags, leere elemente als <element /> oder <element></element>...) gibt es also erst ab XHTML, und wenn ich in HTML <br /> schreibe, ist das offiziell syntaxtechnisch falsch?
Auch HTML hat strenge Regeln. Korrekte Verschachtelung war immer schon Pflicht. <a><b></a></b> ist falsch, <a><b></b></a> müßte es heißen.
Bei XHTML gibt es keine optionalen Tags mehr. Jedes Element hat immer ein Start- und ein Ende-Tag. Und wenn das Element keinen Inhalt hat, kann Start- und Endtag in einem Tag zusammengefaßt werden.
Beachte die Fachbezeichnungen:
<b> ist ein Tag. Ein Starttag.
</b> ist ebenso ein Tag. Ein Ende-Tag.
<b>irgendein Text</b> insgesamt ist ein Element, ein B-Element, bestehens aus Start- und End-Tag sowie Inhalt dazwischen.
Weil bei <br>, <meta>, <link> und <img> kein Inhalt zwischen Start- und End-Tag kommt, schreibt man diese in XHTML <br/>, <meta/>, <link/> und <img/>.
Damit diese Schreibweise kompatibel zu Browsern ist, die nur HTML können, fügt man vor dem / noch ein Leerzeichen ein. Dann interpretiert der HTML-Browser diesen Schrägstrich als Attribut, das er nicht kennt und gemäß HTML-Standard dann ignoriert - und allen ist geholfen.
Ein direkt anschließende Ende-Tag <br></br> wäre zumindest nach XHTML-Standard auch möglich, aber da rasten HTML-Browser dann unter Umständen aus, weil solche Tags nie vorgesehen waren.
Der Validator ignoriert in HTML solche Schrägstriche in Tags übrigens nicht! Der meckert sie an. Deshalb macht es keinen Sinn, in HTML-Dokumenten XHTML-artige Tags zu setzen.
Aber bei XHTML muss dann wieder <link /> geschrieben werden, oder?
Was heißt "wieder"? Erstmalig.
- Sven Rautenberg
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)