HTML/Regeln/Element, Tag und Attribut

Aus SELFHTML-Wiki
< HTML‎ | Regeln
Version vom 16. März 2010, 15:01 Uhr von Dedlfix (Diskussion | Beiträge) (Beispielformatierung)

Wechseln zu: Navigation, Suche

Elemente und Tags in HTML

HTML-Dateien bestehen aus dem normalen Text, den der Besucher der Webseite später sehen wird. Zur Textauszeichnung gibt es bestimmte Zeichen aus dem normalen Zeichenvorrat.

Der Inhalt von HTML-Dateien steht in HTML-Elementen. HTML-Elemente werden durch so genannte Tags markiert. Fast alle HTML-Elemente werden durch ein einleitendes und ein abschließendes Tag markiert. Der Inhalt dazwischen ist der "Gültigkeitsbereich" des entsprechenden Elements. Tags werden in spitzen Klammern notiert.

Beispiel

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Elemente und Tags</title>
  </head>

  <body>
    <h1>HTML - die Sprache des Web</h1>
  </body>
</html>

Erläuterung:

Das Beispiel zeigt eine Überschrift 1. Ordnung. Das einleitende Tag <h1> signalisiert, dass eine Überschrift 1. Ordnung folgt (h = heading = Überschrift). Das abschließende Tag </h1> signalisiert das Ende der Überschrift. Ein abschließendes Tag beginnt mit einer öffnenden spitzen Klammer und einem Schrägstrich </.

Beachten Sie:

Bei HTML spielt es keine Rolle, ob die Elementnamen in den Tags in Klein- oder Großbuchstaben notiert werden. Dort bedeuten z.B. <h1> und <H1> das Gleiche. Im XML-basierten XHTML müssen die Elementnamen dagegen klein geschrieben werden. Es ist deshalb zu empfehlen, die Elementnamen immer klein zu schreiben, egal ob Sie HTML oder XHTML schreiben wollen.

Es gibt auch einige Elemente mit "Standalone-Tags", d.h. Elemente, die keinen Inhalt haben und deshalb nur aus einem Tag bestehen statt aus Anfangs- und End-Tag.

Beispiel:

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Leere "standalone" Elemente und Tags</title>
  </head>

  <body>
    <p>Eine Zeile, ein manueller Zeilenumbruch<br>
      und die nächste Zeile</p>
  </body>
</html>

Erläuterung:

Am Ende der ersten Zeile signalisiert <br>, dass ein manueller Zeilenumbruch eingefügt werden soll (br = break = Umbruch).

Beachten Sie:

Wenn Sie XHTML-gerecht schreiben wollen, müssen Sie Elemente mit Standalone-Tags anders notieren: Anstelle von <br> müssen Sie dann <br /> notieren - also den Elementnamen mit einem abschließenden Schrägstrich. Alternativ dazu können Sie auch <br></br> notieren, also ein Element mit Anfangs- und End-Tag, aber ohne Inhalt. Mehr darüber erfahren Sie im Unterkapitel XHTML und HTML.

Verschachtelung von Elementen

Elemente können ineinander verschachtelt werden. Auf diese Weise entsteht eine hierarchische Struktur. Komplexere HTML-Dateien enthalten sehr viele Verschachtelungen. Deshalb sprechen Fachleute auch von strukturiertem Markup.

Beispiel:

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Verschachtelung von Elementen</title>
  </head>

  <body>
    <h1><i>HTML</i> - die Sprache des Web</h1>
  </body>
</html>

Erläuterung:

Das i-Element steht für italic (= kursiver Text). Der Text zwischen <i> und </i> wird als kursiv interpretiert, abhängig von der eingestellten Schriftart und Schriftgröße für die Überschrift 1. Ordnung.

Attribute in Tags

Einleitende Tags und Standalone-Tags können zusätzliche Angaben enthalten.

Beispiel:

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Attribute in Tags</title>
  </head>

  <body>
    <p>
      Wenn Sie den SELFHTML-Text weiterlesen wollen, dann öffnen Sie die folgenden Verweise
      am besten in einem neuen Fenster oder Tab!<br>
      <a href="http://www.tagesschau.de/">ARD Tagesschau</a><br>
      <a href="http://www.heise.de/newsticker/">Heise Newsticker</a>
    </p>
  </body>
</html>

Erläuterung:

Durch die unterschiedlichen href-Attribute zeigen die beiden Verweise auf unterschiedliche Ziele.

Es gibt folgende Arten von Attributen in HTML-Elementen:

  • Attribute mit Wertzuweisung, wobei es bestimmte erlaubte Werte gibt, z.B. bei <input type="text"> (Eingabefeld für einfachen Text - hier sind nur die Werte text, password, checkbox, radio, submit, reset, file, hidden, image und button erlaubt).
  • Attribute mit freier Wertzuweisung, wobei jedoch ein bestimmter Datentyp oder eine bestimmte Konvention erwartet wird, z.B. <style type="text/css"> (Bereich für Stylesheets definieren - hier wird ein so genannter MIME-Typ als Wert erwartet, und MIME-Typen haben immer den Aufbau Typ/Untertyp). Oder <input maxlength="10"> (Ein Eingabefeld, in das der Benutzer bis zu 10 Zeichen eingeben kann - hier wird eine numerische Angabe erwartet)
  • Attribute mit freier Wertzuweisung ohne weitere Konventionen, z.B. <p title="Aussage mit Vorbehalt"> - hier kann ein ganzer Text zugewiesen werden.
  • Alleinstehende Attribute, z.B. <input readonly> (nur lesbares Textfeld). Alleinstehende Attribute gibt es allerdings nur bei HTML (einschließlich HTML5). Wenn Sie XHTML-gerecht schreiben wollen, müssen Sie <input readonly="readonly"> notieren. Mehr darüber erfahren Sie im Unterkapitel XHTML und HTML.

Obwohl es vom HTML-Standard her zulässig wäre, dass bestimmte Attributwerte auch ohne Anführungszeichen geschrieben werden können, sollten Sie diese Möglichkeit nicht nutzen. Es verringert die Wahrscheinlichkeit von Fehlern, wenn Sie grundsätzlich alle Werte, die Sie Attributen zuweisen, in einfache ' oder doppelte " Anführungszeichen setzen. Sie können diese zwei Arten innerhalb einer Datei beliebig mischen, lediglich für ein einzelnes Attribut müssen an Anfang und Ende dieselben Zeichen benutzt werden. Welches Zeichen Sie wählen, ist im Prinzip egal.

Wie bei Elementnamen, so gilt auch bei Attributnamen: Bei HTML (einschließlich HTML5) spielt es keine Rolle, ob die Attributnamen in Klein- oder Großbuchstaben notiert werden. Im XML-basierten XHTML müssen die Attributnamen dagegen durchgehend klein geschrieben werden. Bei den Wertzuweisungen an Attribute kann Groß- und Kleinschreibung abhängig von der Art des Wertes unterschieden werden oder auch nicht.

Neben Attributen, die nur in bestimmten HTML-Elementen vorkommen können, gibt es auch so genannte Universalattribute, die in vielen bzw. fast allen HTML-Elementen erlaubt sind.

Beispiel:

<p id="Einleitung">Text</p>

Erläuterung:

Das Beispiel definiert einen Textabsatz mit den HTML-Tags <p> und </p>. Im einleitenden <p>-Tag wird ein Universalattribut notiert, nämlich das Attribut id. Damit können Sie dokumentweit eindeutige Namen für einzelne HTML-Elemente vergeben. Einzelheiten über solche Attribute erfahren Sie im Abschnitt über Universalattribute.

HTML-Parser

Unter einem HTML-Parser versteht man eine Software, die HTML-Auszeichnungen erkennt und in strukturierten Text umsetzt. Jeder Web-Browser verfügt über einen HTML-Parser, um überhaupt mit HTML klarzukommen. Solche HTML-Parser werden nun leider auf den meisten Web-Seiten mit Syntaxfehlern in der Textauszeichnung konfrontiert. Oft sind es kleinere, nicht allzu tragische Fehler, doch es gibt auch viele Web-Seiten, deren HTML-Quelltext nur das Prädikat "ungenügend" verdient, weil darin übelste Verunstaltungen der HTML-Regeln vorkommen. Strenge Parser, die genau auf Einhaltung der HTML-Regeln prüfen, müssten die Anzeige solcher Web-Seiten eigentlich abbrechen, und anstelle der Seite würden die Browser dann nur eine lapidare Fehlermeldung anzeigen. Da ein solcher Browser am breiten Markt jedoch keine Chance hätte, weil er kaum eine bekannte Web-Seite anzeigen würde, sind die HTML-Parser der heute verbreiteten Browser ziemlich gutmütige Wesen, die so ziemlich alles fressen, was ihnen vorgesetzt wird und irgendetwas daraus machen, meistens sogar durchaus das, was der Autor der Web-Seite erreichen wollte. Am weitesten in dieser Kunst hat es der HTML-Parser des Internet Explorers gebracht. Das hat dem Internet Explorer einerseits den Ruf beschert, "am besten" HTML zu beherrschen, aber Fachleute rümpfen aus dem gleichen Grund gerne die Nase über diesen Browser mit dem Argument, dass er durch sein Verhalten das schlampige und fehlerhafte Kodieren von HTML nur fördere.

Bei der Spezifikation von HTML5 hat man versucht, auch die Fehlerbehandlung der Browser zu vereinheitlichen. Das bedeutet, dass HTML5-konforme Browser das gleiche Verhalten aufweisen sollen, wenn sie auf eine (X)HTML-Seite mit fehlerhaftem (X)HTML treffen. Bis die Browserhersteller diese Fehlerbehandlung in ihre Produkte eingebaut haben, werden aber sicher noch einige Jahre vergehen.

Angesichts der wachsenden Komplexität der verschiedenen Sprachen, also HTML in Verbindung mit eingebettetem CSS, JavaScript, PHP usw., wird es jedenfalls immer wichtiger, die Syntax-Regeln von HTML einzuhalten. Diese Regeln finden Sie in der HTML-Referenz genauer beschrieben.

Validierung

Wenn Sie prüfen wollen, ob Ihre selbst erstellte HTML-Seite alle Regeln einhält, können Sie das mit einem sogenannten Validator tun. Ein Validator liest die Seite komplett ein, stellt fest, welcher Dokumententyp für die Seite angegeben ist, und prüft dann streng auf die Einhaltung der damit verbundenen Regeln.

Das älteste Angebot stammt vom W3C: validator.w3.org. Dort haben Sie die Möglichkeit, entweder eine Datei von Ihrem Rechner zur Prüfung hochzuladen, oder eine im Internet erreichbare Adresse anzugeben.

Alternativ bietet SELFHTML unter der Adresse validator.de.selfhtml.org einen deutschsprachigen Service an, der dieselben Prüfmöglichkeiten bietet und bei Fehlern direkt Links auf die SELFHTML-Dokumentation liefert, so dass Sie direkt nachsehen können, wie die Stelle korrekt lauten muss.

Es gibt im Internet noch weitere Validatoren. Bitte beachten Sie, dass die Spezifikation für HTML5/XHTML5 noch nicht in der endgültigen Form vorliegt und daher alle HTML5/XHTML5-Validatoren als experimentell bezeichnet werden müssen.

Der Sinn des Validierens mag eventuell trotzdem noch recht abstrakt wirken, und tatsächlich ist eine valide HTML-Datei nicht zwangsläufig "gut" geschrieben, genauso wenig, wie eine nicht valide Seite unbrauchbar sein muss (wobei "gut" und "schlecht" natürlich auch subjektiv sind).

Daher jetzt ein konkreter Grund, warum das Validieren sinnvoll sein kann: Bei öffentlich aufrufbaren Webseiten wird z.B. unter bestimmten Umständen von seiten des Gesetzgebers verlangt, dass es ein Impressum gibt, und dass dieses leicht erkennbar und unmittelbar erreichbar ist. Wenn nun behauptet wird, diese Anforderung sei nicht im erforderlichen Ausmaß erfüllt, dann kann es zu einem Rechtsstreit kommen.

Die Frage wäre dann, ob es am schlechten Browser des Besuchers oder eben an einer schlecht gemachten Webseite liegt. Bei seiner Entscheidung könnte ein Richter einbeziehen, dass das Webangebot nicht valide sei, also nicht dem "Stand der Technik" entspreche und dass somit den Betreiber des Webangebots eine Mitschuld treffe. Es kann also zumindest nicht schaden, seine Seiten zu validieren.