Vokabular der HTML-Syntax: Warum „Tag“ zu 90 Prozent falsch verwendet wird
Im Alltag eines Entwicklers werden gewisse Wörter und Begriffe ganz besonders oft benutzt, neben „Kaffee“ und diversen Flüchen bis hin zu DOM steht auch „Tag“ ganz oben. Dabei wird „Tag“ meistens völlig falsch benutzt und mit „Elementen“ oder gar „Attributen“ gleichgesetzt. Weil sich natürlich niemand durch riesige Dokumentationen wälzen möchte, zeige ich euch kurz und knapp das kleine Einmaleins der HTML-Syntax.
Schon in der heute nostalgischen aussehenden Spezifikation von HTML3.2 aus dem Barbie-Girl-Jahr 1997 wird von einem META
-Element gesprochen. Mehr Informationen zu Elementen, Attributen und deren Werte findet ihr aber in der Spezifikation von HTML4.01, in der explizit von „Elementen“ und „Attributen“ gesprochen wird.
HTML-Syntax
In HTML gibt es eine Reihe von Elementtypen die wir nutzen können, um zum Beispiel Listen, Absätze, Hyperlinks oder Bilder abzubilden. Welche Elementtypen es genau gibt und in welchem Zusammenhang sie verwendet und auch verschachtelt werden dürfen, wird durch die Dokumenttyp-Definition (DTD) oder in einem spezifischen Schema festgelegt. In der Mitte der HTML-Syntax-Spezifikation von Version 4.01 findet ihr dieses Zitat:
Elements are not tags. Some people refer to elements as tags (e.g., „the P tag”). Remember that the element is one thing, and the tag (be it start or end tag) is another. For instance, the HEAD element is always present, even though both start and end HEAD tags may be missing in the markup
Um euch jetzt ein Durchkauen der gesamten Spezifikation von 4.01 zu ersparen, werde ich in diesem kleinen Guide zur HTML-Syntax darauf genauer eingehen.
HTML-Syntax: Element
Ganz einfach gesagt: Ein HTML-Element ist eine Instanz eines beliebigen Elementtyps, die von „Tags“ umschlossen wird.
<element>...</element>
HTML-Syntax: Tag
Der Inhalt eines Elements wird durch einen Start-Tag eingeleitet und durch einen End-Tag abgeschlossen. Somit ist <p>
ein Start-Tag und </p>
das End-Tag, das gesamte Konstrukt wird wiederum als Element bezeichnet.
Natürlich gibt es auch Elemente, die kein abschließendes Tag haben. Diese leeren Elemente werden auch mit einem sogenannten Leeren-Element-Tag abgeschlossen. Neben hr
und br
ist auch img
ein solches Element.
<element>
HTML-Syntax: Attribute
Aber lasst uns gleich bei Bildern und dem img
-Element bleiben. Um also ein Bild in eure HTML-Struktur einbauen zu können, platziert ihr ein img
-Element und definiert die Bild-Quelle in einem Attribut und gebt gleichzeitig dessen Attributwert an:
<element attribut="attributwert"></element>
Das heisst also, dass ihr dem img
-Element ein Attribut, nämlich src
, anhängt – mit dem Wert dein-Bild.jpg
. Konkret sieht das dann so aus:
<img src="dein-Bild.jpg" alt="Ich bin alternativ">
So einfach ist das – und ich hoffe, ich konnte das ein oder andere Missverständnis auflösen. In einem anderen Artikel könnt ihr übrigens lesen, wie ihr Fehler in eurer HTML-Syntax ausbessern könnt.
Welche Missverständnisse in Bezug auf HTML gibt es noch?
Hallo Mario,
so weit, so gut und richtig … aber warum soll kein Tag sein? Natürlich heißt es meta-Element (oder META-Element), aber es heißt <meta>-Tag. ist ein Leeres-Element-Tag, das schreibst du ja auch selbst.
Viele Grüße,
MI
Außerdem: Wenn ihr über HTML schreibt, dann ist auch <element /> nicht richtig, da das nur für XHTML notwendig ist. Leere Elemente sind in HTML eben <element>, <meta …> , <img …> oder <br>
Auch ist bei leeren Elementen ohne Attribute die Unterscheidung zwischen Tag und Element nicht direkt möglich.
Gruß
Hallo @MI
Ganz richtig erkannt und soeben ausgebessert. Danke! :)
Auch ein Danke @Mario
Da hat mich der Editor gefuchst :)
Um die Frage zu beantworten:
meta ist ein Element genauso wie img, auch in der HTML4.01 Spezifikation. Der Tag selbst, ist natürlich ein Tag. Aber es wird von einem meta-Element oder einem img-Element gesprochen, jedenfalls laut Spezifikation. Siehe auch: http://www.w3.org/TR/html401/index/elements.html
In meinen Augen ist (alleinstehender Tag) genauso ein Tag ist wie (Container-Tag). Ein Element ist entweder ein „“ oder „Inhalt“. Und genauso wird es von jedem vernünfigen XML-Parser behandelt. Zu sagen, ein allein stehender Tag ist kein Tag resultiert aus dem Missverständnis des Zitates.
Ob nun Tag oder Element ist nicht ganz so dramatisch. Der Unterschied zwischen Attribut und Tag bzw. Element ist viel wichtiger.
DANKE! Ich schicke es mal rum :D
Ich hätte in der Beschreibung logischer gefunden..
Das Element ist ja die Instanz dieser „Tags“.
Ich hätte in der Beschreibung “ “ logischer gefunden..
Das Element ist ja die Instanz dieser „Tags“.
die Tags :) wurden im Kommentar davor gelöscht
.. so kann man sich nicht untehralten :(
Guten Tag! – kann man da nur sagen. Danke für die Info.
@Daniel:
das, was du meinst sind einerseits Attributwerte und andererseits Textelemente.
Überhaupt sind Tags als (syntaktische) Repräsentationen von (allein logischen) Elementen zu sehen.
Super Seite um das Coden zu lernen.
http://www.codecademy.com/