Da HTML eine Auszeichnungssprache ist, bestehen HTML-Dateien aus dem eigentlichen Inhalt und den Auszeichnungen. In HTML heißen diese Auszeichnungen "Elemente" und dienen dazu, den gesamten Text zu strukturieren.
Die einzelnen Abschnitte einer HTML-Datei können als bestimmter Teil der Struktur ausgezeichnet werden. Für jede Struktur, die in HTML definiert werden kann (z.B. Überschriften, Texte, Listen, Tabellen, Hyperlinks, Formulare), gibt es ein entsprechendes Element. Die Bezeichnungen der HTML-Elemente sind meist Abkürzungen der entsprechenden englischen Namen.
Struktur | Name englisch | Bezeichnung des HTML-Element |
Absatz | paragraph | p |
Überschrift | heading | h1 bis h6 (unterschiedliche Größen) |
Bild | image | img |
Betonung | emphasis | em |
Abkürzung | abbreviation | abbr |
Welche HTML-Elemente es gibt, wird durch die verwendete HTML-Version genau vorgegeben.
https://de.wikipedia.org/wiki/Tag_(Informatik)
Werden HTML-Elemente als Auszeichnung in eine HTML-Datei eingebaut, so nennt man diese Auszeichnung "Tag" [Aussprache (PONS): tag ⇢I.1]. Diese Bezeichnung ist vom englischen Wort "tag" entlehnt, welches Etikett, Namens- oder Bezeichnungsschild bedeutet; daher wird das "neudeutsche" Wort Tag auch genauso wie im englischen ausgesprochen.
Im Tag wird die Bezeichnung des HTML-Elements als Zeichenfolge für die Auszeichnung verwendet, z.B. p für paragraph, Absatz.
Um den Tag vom Inhalt unterscheiden zu können, wird er mit spitzen
Klammern ("kleiner als"- und "größer als"-Zeichen) eingeschlossen. Somit
sieht z.B. der Tag für Absätze so aus: <p>
.
Tipp: Auf der Computertastatur befinden sich diese Zeichen (in der Regel)
gemeinsam auf der Taste ganz links in der untersten Zeile.
Um "<" einzutippen einfach auf die Taste tippen, um ">" zu tippen dabei die
Umschalt-Taste gedrückt halten.
Anmerkung: Auf englisch heißt diese Taste "shift" (bewegen, umschalten), auf
deutschen Tastaturen wird ein Pfeil nach oben (⇧) als Symbol verwendet:
daher wird beim Tippen von Tasten mit Doppelbelegung immer das obere Zeichen
eingefügt, wenn die Umschalt-Taste gedrückt ist.
Alles was im Code von HTML-Dateien innerhalb von spitzen Klammern notiert ist, sind daher Tags und werden vom Browser dementsprechend als Auszeichnungen interpretiert.
Alles was im Code außerhalb der spitzen Klammern notiert ist, ist Inhalt und wird vom Browser dargestellt. Wenn in body.
HTML-Elemente werden als Auszeichnung immer einem Abschnitt des Inhalts zugewiesen – manche einer Position im Inhalt. Für diesen Bereich gelten sie dann und sind dort wirksam.
Dieser Gültigkeitsbereich wird im Code durch Tags markiert, bei denen es zwei Ausprägungen gibt. Wo der Gültigkeitsbereich beginnt, wird ein Anfangstag notiert, wo er endet, wird ein Endtag notiert. Dabei wird auch hier der Wortteil "…tag" wiederum englisch ausgesprochen.
Der Anfangstag besteht aus der Bezeichnung des gewünschten HTML-Elements,
welche in spitze Klammern eingeschlossen wird, z.B. <p>
.
Der Endtag sieht genauso aus, nur dass der Bezeichnung des HTML-Elements ein
(normaler) Schrägstrich vorangestellt wird, z.B. </p>.
Dabei muss natürlich für den Endtag des selbe HTML-Element wie beim
Anfangstag verwendet werden.
Tipp: Auf der Computertastatur befindet sich (normaler) Schrägstrich auf der Taste der Ziffer 7, etwa in der Mitte der obersten Zeile (die Zeile mit Zeichen, nicht die Zeile mit Funktionstasten). Um "/" einzutippen die Umschalt-Taste gedrückt halten und die Taste "7" tippen.
Notierung im Code | Beispiele |
|
Anfangstag | <Bezeichnung des HTML-Elements> |
<p> , <em> , <abbr> |
Endtag |
</Bezeichnung des HTML-Elements> |
</p> , </em> , </abbr> |
Anmerkung: Im manchen Unterlagen wird der Anfangstag auch "Starttag" oder "öffnendes Tag" genannt, der Endtag wird auch "schließendes Tag" genannt.
Anmerkung: < /> -> XHTML
Die Notierung von Tags in HTML-Dateien ist vergleichbar mit dem System von Verkehrsschildern auf einer Straße.
Deren Gültigkeit reicht vom ersten Schild ("Anfangs"-Schild", das anzeigt welche Vorschrift hier gilt, bis zum passenden "Ende"-Schild. Dieses hat die selbe Beschriftung, welche aber durchgestrichen dargestellt wird.
Im Beispielsbild gilt die Geschwindigkeitsbeschränkung - hier Gelb eingefärbt - vom Anfangsschild mit der Beschriftung 30 "(30)" bis zum Endeschild mit der selben Beschriftung, wobei diese durchgestrichen dargestellt wird "(/30)".
Genauso funktioniert der Gültigkeitsbereich in HTML. Dem Anfangsschild
entspricht der Anfangstag mit der Bezeichnung des HTML-Elements, also z.B.
<p>
für den Beginn eines Absatzes (paragraph). Dem Endeschild entspricht
der Endtag mit der selben Bezeichnung aber durchgestrichen dargestellt, bei
HTML im Tag mit einem vorangestellten Schrägstrich "/" notiert, also
z.B. </p>
. Zwischen beiden Tags ist das HTML-Element gültig.
Verkehrsschilder: | (30) | … hier gilt es … | (/30) |
HTML: | Anfangstag | … Gültigkeitsbereich … | Endtag |
Beispiel: | <p> | Dieser Text wird als Absatz angezeigt. | </p> |
Es gibt auch Elemente ohne Gültigkeitsbereich, dessen "Wirkung" sich auf
eine einzige Stelle beschränkt: z.B. ein Bild oder ein (harter)
Zeilenumbruch, der immer an der selben Stelle sein soll. Solche Elemente
werden inhaltsleer oder auch standalone genannt.
Sie werden mit einem einzelnen
Tags (nur Anfangstag, kein Endtag) notiert; z.B. <br> für break, den
(harten) Zeilenumbruch.
unterschiedlich in HTML
und XHTML
HTML: z.B. <br> für break = fester Zeilenumbruch
XHTML: <br /> (Endtag durch Schrägstrich "integriert")
<P>
Z.B. Bilder; eine weitere Datei (Bilddatei: Foto, Grafik) wird nachgeladen und an dieser Stelle eingesetzt.
Inline-Elemente sind in Zeilen, ihr Inhalt ist also eine Folge
von Zeichen, die auch am Ende der Zeile umgebrochen
sein können.
Vergleichbar mit Format - Zeichen in Word
Block-Elemente bewirken einen rechteckigen Block um ihren Inhalt. Das bedeutet, sie erzeugen immer einen Zeilenumbruch an ihrem Ende. Besteht der Inhalt aus Text, so bleibt der Platz nach dem letzten Zeichen leer (Zeilenumbruch).
Vorgriff Verschachtelung:
Mit anderen Worten: Sobald ein in einem Block-Element ein Inline-Element vorkommt, dürfen darin nur noch weitere Inline-Elemente sein, aber keine Block-Elemente.
HTML-Elemente können in HTML-Dateien hintereinander stehen, sie können aber auch "verschachtelt" sein, also ein Element befindet sich innerhalb eines anderen.
Verschachteln von HTML-Elemente (siehe Verschachtelung - Strukturbaum - Strukturpfad)
Wichtig dabei ist, dass die Verschachtelung korrekt ist: Ein Element muss komplett innerhalb eines anderen sein. So kann eine betonte Textstelle (mit em=emphases) innerhalb eines Absatzes (mit p=paragraph) stehen: <p> … <em> … </em> … </p>.
Nicht korrekt wäre: <p> … <em> … </p> … </em>.
Auch hier Darstellung von Schachteln durch "Striche" darunter oder Kästchen.
Tags können noch weitere, zusätzliche Informationen für den Browser enthalten. Die Eigenschaft der Information heißt Attribut, und diesem wird der gewünschte Wert zugewiesen.
Die Namen der HTML-Attribute sind meist Abkürzungen der entsprechenden englischen Begriffen, wie z.B. lang für die Angabe einer Sprache (language) und src für die Angabe der Quelle einer Datei (source). Die Werte, die für die Attribute angegeben werden, können Zahlen, Schlüsselwörter (wie z.B. "en" für Englisch) oder Dateinamen mit Pfadangabe sein.
HTML-Attribute bestehen immer aus der Attributbezeichnung und dem gewünschten Wert, der unter Anführungszeichen ("Gänsefüßchen") geschrieben ist. Zwischen Attributbezeichnung und Wertangabe steht ein Ist-Gleich-Zeichen (=). Ist z.B. ein Absatz in englischer Sprache geschrieben, so kann diese Information so angegeben werden: <p lang="en">.
Es können auch mehrere Attribute gleichzeitig verwendet werden. Diese werden dann nacheinander - mit Leerzeichen (Abstand) getrennt - verwendet. Ist z.B. ein Absatz in englischer Sprache geschrieben und soll eingeblendet werden, dass es sich um "edles Oxford-English" handelt, so kann diese Information so angegeben werden: <p lang="en" title="Reinstes Oxford-English.">. Splendid, isn't it indeed!
Genauso wie bei den Verkehrsschildern die Zusatzinformationen nur auf den Anfangsschildern stehen, stehen in HTML-Dateien die Attribute nur in den Anfangstags.
Welche Attribute es gibt und welche Werte sie annehmen können, wird durch die verwendetet HTML-Version genau vorgegeben.
Verkehrsschilder: (30 bei Schnee) … hier gilt es … (/30)
HTML: Anfangstag mit Attribut(e) … Gültigkeitsbereich … Endtag
Beispiel: <p lang="en"> This paragraph is in
English. </p>
Beispiel: <p lang="en" title="Oxford-English">Splendid, isn't
it?</p>
Bei einigen HTML-Elementen gibt es Attribute, die auf alle Fälle benötigt werden, diese heißen dann verpflichtend und müssen verwendet werden.
Einige Attribute gibt es nur bei einzelnen HTML-Elementen. Einige Attribute kann man aber bei allen HTML-Elementen verwenden, diese heißen dann Universal-Attribute. Man kann sie bei allen HTML-element verwenden, da sie keine spezielle Information für ein bestimmtes HTML-Element beschreiben, sondern allgemeine Informationen wie z.B. die Sprache.
Darstellung der einzelnen, Aufbauregeln, Beispiele
Unterschiede von tags in verschiedenen Versionen von (X)HTML
Unterschied logische Auszeichnung (z.B. <strong>, <em>) gegenüber physikalischer Auszeichnung (z.B. <b>, <i>)
Aufbau von HTML-Dateien (<!DOCTYPE>, <html>,<head>,<body>)
Vereinfachte Darstellung:
<!DOCTYPE html> <html> <head> … (Meta)Angaben zur Darstellung … </head> <body> … Texte und Multimediainhalte, die im Browserfenster dargestellt werden … </body> </html>
Valides (korrekte) bzw. empfohlenes Grundgerüst:
<!DOCTYPE html> <html lang="de"> <head> <title> … </title> <meta charset="utf-8"> </head> <body> </body> </html>
Weißraum wird der freie Raum zwischen und um den Text genannt. Er entsteht durch Zeilenumbrüche, Einrückungen und Abständen zwischen den Wörtern und Absätzen.
In HTML werden unter whitespace die Zeichen, HTML-Elemente und Methoden der Darstellung im Browser verstanden, die diesen freien Raum erzeugen.
in den HTML-Quellcode eingefügt wird.
Wichtig dabei ist, dass im HTML-Quellcode nur das geschützte Leerzeichen
zwischen den Wörtern steht und keine weiteres (normales) Leerzeichen,
sonst kann bei diesem trotzdem ein Zeilenumbruch entstehen: Also
Dr. Müller
und nicht Dr. Müller
..https://de.wikipedia.org/wiki/Entit%C3%A4t_(Auszeichnungssprache)
In den Anfangszeiten von HTML gab es zum Speichern der Zeichen eines
Textes "Codetabellen"
(todo Name) die nur
256 Zeichen umfassten. Es gibt jedoch in vielen Sprachen
spezifische Zeichen, die nur in dieser Sprache vorkommen, wie z.B.
die Umlaute in der deutschen Sprache. Da all diese Zeichen mehr als
256 sind, passten sie nicht in eine einzige "Codetabelle". (todo Name)
Daher gab es für unterschiedliche Sprachen auch jeweils eigene
länderspezifische "Codetabellen".
(todo Name)
Schriftzeichen aus unterschiedlichen Sprachen, die nicht in der
selben "Codetabelle"
(todo Name) sind,
könnten daher nicht gleichzeitig in der selben Datei verwendet
werden.
Weiters wurden in den unterschiedlichen Betriebssystemen der
verschiedenen Computer eigene "Codetabellen"
(todo Name)
verwendeten, die sich ebenfalls unterschieden.
Um sicher zu gehen, dass alle Zeichen korrekt im Browser dargestellt
werden, verwendete man nur die Zeichen aus der ersten
Hälfte der "Codetabellen"
(todo Name), da diese
in allen "Codetabellen"
(todo Name) gleich
waren (entspricht dem ASCII-Code mit 7 bit).
Um nun auch alle anderen Zeichen
außerhalb des ASCII-Codes verwenden zu können, gibt es in HTML
"benannte Zeichen", auch "entities" genannt. Dies sind Umschreibungen
für die länderspezifischen Zeichen. Diese Umschreibungen werden im HTML-Quellcode
verwenden und bestehen nur aus Zeichen aus
der ersten Hälfte der "Codetabellen"
(todo Name), wodurch
gewährleistet ist, dass sie korrekt gespeichert und beim Lesen auch
wieder korrekt interpretiert werden können. In der Darstellung des
Textes im Browser wird dann anstelle der Umschreibung die Darstellung des
Zeichens verwendet . So wird z.B. beim Pfund-Zeichen (Währung in
Großbritannien) aus £
im HTML-Quellcode die
Darstellung £ im Browser.
Weiters
konnte man damit Zeichen aus unterschiedlichen "Codetabellen"
(todo Name)
gleichzeitig in der selben HTML-Datei benutzen.
Beispiele für Umschreibungen für Zeichen, die nicht im ASCII-Code
vorhanden sind, wie z.B. länderspezifische Zeichen wie deutsche
Umlaute oder Sonderzeichen wie Währungssymbole, unterschiedliche
Anführungszeichen, mathematischen Symbole: ü für "kleines u
Umlaut = ü", Ä für "großes A Umlaut = Ä", ß für "Ligatur
(zwei zusammen dargestellte Schriftzeichen) aus s und z = ß", €
für "Euro = €", × für "Mal (Multiplikation) = ×".
Wie man sieht besteht die Umschreibung
immer aus einem "&" am Beginn
(leitet das benannte Zeichen ein), dem vorgegebenen Namen (nur mit
Zeichen aus dem ASCII-Code) und einem ";" (Strichpunkt) am Ende (beendet das
benannt Zeichen).
Bei der Verwendung von Unicode als "Codetabelle"
(todo Name) -
erkennbar an charset=utf-8
in einen der <meta …>
-Tags
im <head>
-Bereich des HTML-Quellcodes - sind
benannte Zeichen nicht mehr notwendig, da alle (aktuellen) Computer
die selbe "Codetabelle"
(todo Name)
verwenden.
MAN DARF NICHT NACHTRÄGLICH
EINFACH ÄNDERN!
Ausnahmen, auch wenn man Unicode verwendet:
Werden im Text HTML-eigene Zeichen wie <,
>
und &
verwendet, so
müssen diese im HTML-Quellcode durch benannte Zeichen "maskiert" werden.
Denn diese Zeichen haben im HTML-Quellcode eine bestimmte Funktion und
würden daher eine unerwünschte Wirkung auslösen.
Erklärung: Das "kleiner" Zeichen bzw. "spitze Klammer auf" Zeichen
im HTML-Quellcode würde bedeuten "jetzt beginnt ein HTML-Tag".
Würde die Textstelle "a<b" (a kleiner b) genau so im HTML-Quellcode stehen, würden Browser
<b
als den
Anfangstag für "bold" interpretieren und dann meinen, dass das
schließende "größer" Zeichen bzw. "spitze Klammer zu" Zeichen fehlt
- auf alle Fälle ist die Gefahr groß, dass der Browser den Text
nicht wie gewünscht darstellt.
Das gleiche gilt für das "kaufmännische Und" welches im Quellcode
ein benanntes Zeichen einleitet. Würde die Textstelle "GmbH & Co"
genau so im HTML-Quellcode stehen, würden Browser & Co
als den Anfang eines benannten Zeichen
"Co" interpretieren und dann meinen, dass der schließende
Strichpunkt fehlt - auf alle Fälle ist die Gefahr groß, dass der
Browser den Text nicht wie gewünscht darstellt.
Meist wird empfohlen, dass auch Anführungszeichen " (manchmal auch
Gänsefüßchen genannt) umschrieben werden, da auch sie im
HTML-Quellcode eine Bedeutung haben: Sie umschließen die Werte bei
HTML-Attributen (z.B. <a href="impressum.html">
). Somit
könnten Browser z.B. bei <p>"Mehr Licht" sollen die letzten
Worte von Johann Wolfgang von Goethe gewesen sein.</p>
im
Quellcode die Stelle "Mehr Licht"
als den Wert eines
Attributs interpretieren und dann meinen, dass der Anfangstag <p>
zu früh
geschlossen ist und der Attributname fehlt - auf alle Fälle ist die
Gefahr groß, dass der Browser den Text nicht wie gewünscht
darstellt.
So werden die HTML-eigenen Zeichen im HTML-Quellcode umschrieben:
Zeichen | Name in HTML | Übersetzung |
---|---|---|
< | < | lower then = Kleiner-Zeichen |
> | > | greater then = Größer-Zeichen |
& | & | ampersand = kaufmännisches Und (Et-Zeichen) |
" | " | quotes (quotation marks) = Anführungszeichen |
Weiters gibt es einige Zeichen die man in Unicode (mit charset=utf-8
)
direkt im Quellcode stehen haben kann, die man aber trotzdem besser
mit benannten Zeichen in den HTML-Quellcode eingibt bzw. stehen hat:
Zeichen | Name in HTML | Übersetzung und Erläuterung |
---|---|---|
| non breaking space = Geschütztes Leerzeichen Die direkte Darstellung im HTML-Quellcode würde sich von einem normalen Leerzeichen nicht unterscheiden und es wäre daher nicht erkennbar. |
|
| ­ | soft hyphen = bedingter Bindestrich (nicht Trennstrich) |
nicht auf Tastatur
um sicher zu gehen
Man kann die benannten Zeichen auch dann verwenden, wenn man nicht
weiß, wie man sie direkt über die Tastatur eingeben kann. Dann tippt
man einfach die Umschreibung in den HTML-Quellcode ein oder kopiert sie aus einer
Zeichenreferenz-Tabelle in den HTML-Quellcode.
Eingabe Zeichen mit Tastatur:
Viele Zeichen wie die deutschen Umlaute kann man auf einer Tastatur
(mit deutschem Layout) direkt eintippen.
Für einige Zeichen wie @ und € gibt es Tastenkombinationen (Windows:
AltGr+Q und AltGr+E; Apple: Alt+L und Alt+E - Anmerkung: Auf einigen
Apple-Tastaturen ist die Alt-Taste mit "⌥" oder "Option"
beschriftet. ).
https://de.wikipedia.org/wiki/Wahltaste
Theoretisch kann man alle
Zeichen des Unicodes über Tastatur-Codes eingeben (Windows, Apple,
Linux?)
Eingabe benanntes Zeichen mit Tastatur:
Im HTML-Quellcode eintippen (siehe Zeichenreferenz-Tabelle)
Eingabe benannter Zeichen über Menü:
Expression Web: Menü Einfügen, Symbol
BlueGriffon: Menü Einfügen, Zeichen und Symbole
Anmerkung: Verwendet man Unicode (mit charset=utf-8
)
kann man Umlaute direkt in HTML-Quellcode stehen haben und braucht
diese nicht mit benannten Zeichen umschreiben.
Kommentare: In den HTML-Code (und anderen formalen Sprachen) kann man auch Kommentare einfügen. Das sind Texte, die der Browser ignoriert und nicht benutzt. Kommentare dienen der/dem AutorIn, um Zusatzinformationen an beliebigen Stellen im Code zu schreiben: z.B. um Stellen zu markieren und wiederfinden, Erläuterungen oder Hinweise zu haben etc.
In HTML beginnt ein Kommentar mit <!-- und mit -->) endet er (in CSS: /* und */). Alles was dazwischen geschrieben steht, wird vom Browser nicht interpretiert.
Da Kommentare vom Browser nicht interpretiert werden, kann man hier Umlaute und Sonderzeichen verwenden
Vorsicht: Der gesamte Text zwischen <!-- und --> (bzw. /* und */) ist Kommentar und wird ignoriert, auch um einen
Zeilenumbruch herum. Will man Kommentare über zwei Zeilen verfassen,
so dürfen keine HTML-Elemente dazwischen sein. Ansonsten muss man
den Kommentar in zwei Teile teilen.
Beispiele aus HTML, CSS und andere Sprachen funktionieren gleichermaßen::
<div class="tontraeger"> <h1>Best of 80's</h1> <h2>Verschiedene</h2> </div> <!-- Ende von class: tontraeger -->
<div class="tontraeger"> <h1>Best of 80's</h1> <!-- Titel und Interpret <h2>Verschiedene</h2> des Albums --> </div>
<div class="tontraeger"> <h1>Best of 80's</h1> <!-- Titel --> <h2>Verschiedene</h2> <!-- Interpret --> </div>
<div class="tontraeger"> <h1>Best of 80's</h1> <!-- Titel --> <h2>Verschiedene</h2> <!-- Interpret (gibt es mehrere, dann "Verschiede" eingeben --> </div>