Hypertext Markup Language
| HTML (Hypertext Markup Language) | |
|---|---|
| Dateiendung: | .html, .htm |
| MIME-Type: | text/html |
| Entwickelt von: | World Wide Web Consortium (W3C) |
| Erstveröffentlichung: | 1992 |
| Aktuelle Version | 5.2 (14. Dezember 2017) |
| Art: | Auszeichnungssprache |
| Erweitert zu: | XHTML, HTML5 |
| Standard(s): | ISO/IEC 15445 |
| www.w3.org/html | |
Die Hypertext Markup Language (HTML, englisch für Hypertext-Auszeichnungssprache) ist eine textbasierte Auszeichnungssprache zur Strukturierung elektronischer Dokumente wie Texte mit Hyperlinks, Bildern und anderen Inhalten. HTML wurde für das World Wide Web als Auszeichnungssprache für Webseiten entwickelt. HTML-Dokumente werden hauptsächlich von Webbrowsern dargestellt. Neben den vom Browser angezeigten Inhalten können HTML-Dokumente zusätzliche Angaben in Form von Metainformationen enthalten, z. B. über die im Text verwendeten Sprachen, den Autor oder den zusammengefassten Inhalt des Textes.
HTML wird vom World Wide Web Consortium (W3C) und der Web Hypertext Application Technology Working Group (WHATWG) weiterentwickelt. Die aktuelle Version ab dem 14. Dezember 2017 war HTML 5.2,[4] die damals bereits von vielen Webbrowsern und anderen Layout-Engines unterstützt wurde. Auch die Extensible Hypertext Markup Language (XHTML) wird durch HTML5 ersetzt.[5]
HTML dient als Auszeichnungssprache dazu, einen Text semantisch zu strukturieren, nicht aber zu formatieren.[6] Die visuelle Darstellung ist nicht Teil der HTML-Spezifikationen und wird durch den Webbrowser und Gestaltungsvorlagen wie CSS bestimmt. Ausnahme sind die als veraltet (englisch deprecated) markierten präsentationsbezogenen Elemente.
Entstehung
[Bearbeiten | Quelltext bearbeiten]Vor der Entwicklung des World Wide Web und dessen Bestandteilen, zu denen auch HTML gehört, war es nicht möglich, Dokumente auf elektronischem Weg einfach, schnell und strukturiert zwischen mehreren Personen auszutauschen und miteinander effizient zu verknüpfen. Man benötigte neben Übertragungsprotokollen auch eine einfach zu verstehende Textauszeichnungssprache. Genau hier lag der Ansatzpunkt von HTML. Um Forschungsergebnisse mit anderen Mitarbeitern der Europäischen Organisation für Kernforschung (CERN) zu teilen und von den beiden Standorten in Frankreich und in der Schweiz aus zugänglich zu machen, entstand 1989 am CERN ein Projekt, welches sich mit der Lösung dieser Aufgabe beschäftigte. Am 3. November 1992 erschien die erste Version der HTML-Spezifikation.
Syntax
[Bearbeiten | Quelltext bearbeiten]Dem Text wird durch Auszeichnungen (englisch markup) von Textteilen eine Struktur gegeben.
Die Auszeichnung erfolgt durch genormte (SGML) Elemente. Die meisten dieser HTML-Elemente werden durch ein Tag-Paar markiert, das heißt durch einen Starttag und einen Endtag. Ein Starttag beginnt immer mit dem Zeichen <. Es folgt der Elementname (z. B. p für einen Absatz oder h1 für eine Überschrift erster Ordnung) und optional eine Liste seiner Attribute (z. B. class="warning" oder id="warning"). Mit einem > wird der Starttag geschlossen. Ein Endtag besteht aus den Zeichen </, dem Elementnamen und dem abschließenden >. Die zusammengehörenden Start- und Endtags bilden zusammen mit dem dazwischenliegenden Inhalt ein Element allgemeiner SGML-Spezifikation. Diese Elemente lassen sich nach Regeln, die in einer Dokumenttypdefinition (DTD) angegeben sind, verschachteln:
<p>Ein Textabsatz, der ein <em>betontes</em> Wort enthält.</p>
Bestimmte Elemente müssen nicht explizit notiert werden. Bei einigen Elementen darf gemäß der SGML-Regel „OMITTAG“ der Endtag fehlen (z. B. </p> oder </li>). Zudem spielt bei Element- und Attributnamen Groß- und Kleinschreibung keine Rolle (z. B. <ul>, <UL>, <uL>). Zum Vergleich: In XHTML sind diese Regeln strenger verfasst.
Neben Elementen mit Start- und Endtag gibt es in HTML auch inhaltsleere Elemente, wie etwa Zeilenumbrüche (br) oder Bilder (img).
Eine Textzeile,<br>die hier fortgesetzt wird.
<img src="E-Mail-Button.jpg" alt="E-Mail">
Es geht in HTML um beschreibende (englisch descriptive), nicht um verfahrens- (englisch procedural) und darstellungsorientierte (englisch presentational) Textauszeichnung, auch wenn sich HTML in früheren Versionen dafür verwenden ließ. HTML-Elemente sind keine Angaben zur Präsentation, die dem Webbrowser mitteilen, wie er den Text visuell zu formatieren hat. Vielmehr sind Elemente eine strukturierende Auszeichnung, mit der sich Textbereichen eine Bedeutung zuordnen lässt, z. B.
<h1>…</h1> für eine Überschrift, <p>…</p> für einen Textabsatz und <em>…</em> für betonten Text. Wie diese Bedeutung letztlich dem Benutzer vermittelt wird (im Falle einer Überschrift z. B. durch vergrößerte, fette Schrift), ist zunächst dem Webbrowser überlassen und hängt von der Ausgabe-Umgebung ab. Denn obwohl HTML-Dokumente in der Regel auf Computerbildschirmen dargestellt werden, können sie auch auf anderen Medien ausgegeben werden, etwa auf Papier oder mittels Sprachausgabe. CSS-Formatvorlagen eignen sich dazu, um auf die Präsentation eines HTML-Dokuments in verschiedenen Medien Einfluss zu nehmen.
Daher gelten Elemente und Attribute zur Präsentation wie <font>…</font>, <u>…</u> und noshade als veraltet (englisch deprecated) und sollen nach allgemeiner Auffassung vermieden werden; sie sollten in neu entwickelter Software nicht mehr verwendet und bei der Überarbeitung der dokumentengenerienden Software ersetzt werden.
Das Einlesen des Quelltextes sowie das Verarbeiten der vorhandenen Informationen wird in der Fachsprache auch als Parsen bezeichnet, und die Aufbereitung für das Ausgabemedium als Rendern. Die Sprache HTML beschreibt, wie der Browser (oder ein anderes Programm, wie z. B. ein Texteditor) die Auszeichnungen des Textes zu „verstehen“ hat, nicht, wie er sie dann in der Darstellung umsetzt. So besagt <h1> zwar, dass eine Überschrift folgt, nicht aber, in welcher Schriftgröße oder Schriftschnitt diese darzustellen ist – hier haben sich nur gewisse übliche Standardeinstellungen eingebürgert, die aber nicht Teil der HTML-Spezifikation sind.
Zeichenvorrat
[Bearbeiten | Quelltext bearbeiten]Der ursprünglich auf 7-Bit-ASCII angelegte Standard-Zeichensatz wurde schon in den Frühzeiten des WWW um zahlreiche Sonderzeichen erweitert und als HTML-Entität kodiert. Die Unterstützung universeller Zeichensätze für alle gängigen Sprachen weltweit setzte die Unterstützung von UTF (Unicode) voraus, die heute in allen gängigen Browsern implementiert ist. HTML ist damit auf plattformunabhängige Portierbarkeit angelegt, sofern diese vom verwendeten HTML-Renderer unterstützt werden. Die Wahl des zugrunde liegenden Zeichenvorrats für ein Webdokument erfolgt in den Meta-Elementen im Dateikopf, der Browser stellt sich dann darauf ein.
Ersteller von Webseiten, deren Tastatur eventuell nicht alle Zeichen direkt zur Verfügung stellt, etwa deutsche Umlaute, können auf mehrere Arten Sonderzeichen codieren;[7] so kann ein A-Umlaut („Ä“) entweder als HTML-Entität (ä), als Unicode dezimal (ä) oder als Unicode hexadezimal (ä) kodiert werden, vgl. Unicode #Codepunkt-Angaben in Dokumenten. Viele komplex arbeitende Website-Editoren lösen Sonderzeichen automatisch bei der Kodierung des Quelltextes auf.
Bei der Auflösung in Adresszeilen (URLs) wird wiederum anders verfahren, hier werden die nicht direkt unterstützten Zeichen nach dem MIME-Verfahren in ASCII-Zeichen kodiert, so z. B. %20 für ein Leerzeichen, wenn es beispielsweise in einem Dateinamen vorkommt und sich vom regulären Leerzeichen am Ende des Links unterscheiden muss.
Sprachtyp
[Bearbeiten | Quelltext bearbeiten]HTML ist eine Auszeichnungssprache und wird als solche meist von Programmiersprachen abgegrenzt (siehe dazu Abschnitt Äußere Systematik: Einordnung als Programmiersprache oder Datenformat im Artikel über Auszeichnungssprachen). Eine Gemeinsamkeit mit den meisten Programmiersprachen ist, dass für die Bearbeitung der Quelldokumente keine spezielle Software (siehe auch Liste von HTML-Editoren) nötig ist, sondern ein beliebiger Texteditor ausreicht.
Ein ähnliches Konzept (logische Beschreibung) wie hinter HTML steht hinter dem Satzsystem TeX/LaTeX, das im Unterschied zu HTML jedoch auf die Ausgabe per Drucker auf Papier zielt.
Versionen
[Bearbeiten | Quelltext bearbeiten]HTML wurde erstmals am 13. März 1989 von Tim Berners-Lee am CERN in Genf vorgeschlagen.[8]
- HTML (ohne Versionsnummer, 3. November 1992): Urversion, die sich nur an Text orientierte.[9]
- HTML (ohne Versionsnummer, 30. April 1993): Zu Text kam neben Attributen wie fette oder kursive Darstellung die Bildintegration dazu.
- HTML+ (November 1993): Geplante Erweiterungen, die in spätere Versionen einflossen, aber nie als HTML+ verabschiedet wurden.[10]
- HTML 2.0 (November 1995): Die mit RFC 1866 definierte Version führte u. a. Formulartechnik ein. Der Status dieses Standards ist „HISTORIC“. Auch die Vorgänger sind veraltet.[11]
- HTML 3.0: Nicht erschienen, weil sie mit der Einführung des Netscape-Browsers in der Version 3 bereits vor der geplanten Veröffentlichung veraltet war.
- HTML 3.2 (14. Januar 1997): Neu waren zahlreiche Features wie Tabellen, Textfluss um Bilder, Einbindung von Applets.
- HTML 4.0 (18. Dezember 1997): Einführung von Stylesheets, Skripten und Frames. Auch eine Trennung in Strict, Frameset und Transitional erfolgte. Am 24. April 1998 erschien eine leicht korrigierte Version.
- HTML 4.01 (24. Dezember 1999): Ersetzte HTML 4.0 mit vielen kleineren Korrekturen. War lange Zeit Standard bis 2014.
- XHTML 1.0 (26. Januar 2000): Neuformulierung von HTML 4.01 mit Hilfe von XML. Am 1. August 2002 erschien eine überarbeitete Version.
- XHTML 1.1 (31. Mai 2001): Nachdem XHTML in Module aufgeteilt wurde, wurde mit XHTML 1.1 eine strikte Version definiert, bei der die mit HTML 4 eingeführten Varianten Frameset und Transitional entfielen.
- XHTML 2.0 (geschlossen,[12] 26. Juli 2006): Diese Version sollte nicht mehr auf HTML 4.01 basieren und einige neue Elemente einführen, so z. B.
<nl>für Navigationslisten. Die Trennung von Auszeichnung und Stil sollte in dieser Version vollendet werden. – Das W3C beendete die Arbeiten an XHTML 2.0 im Sommer 2009, weil XHTML durch HTML5 ersetzt werden sollte.[13][14][5] - HTML5 (Empfehlung, 28. Oktober 2014): Schuf auf Basis von HTML 4.01 und XHTML 1.0 ein neues Vokabular. Die zu HTML gehörende DOM-Spezifikation wurde ebenfalls überarbeitet und erweitert.[15]
- HTML 5.1 (Empfehlung, 1. November 2016)
- HTML 5.2 (Empfehlung, 14. Dezember 2017): Aktuelle Version.[4]
HTML-Struktur
[Bearbeiten | Quelltext bearbeiten]
Allgemeine Struktur
[Bearbeiten | Quelltext bearbeiten]Ein HTML-Dokument besteht aus drei Bereichen:
- der Dokumenttypdeklaration (Doctype) ganz am Anfang der Datei, die die verwendete Dokumenttypdefinition (DTD) angibt, z. B. HTML 5,
- dem HTML-Kopf (
HEAD), der hauptsächlich technische oder dokumentarische Informationen enthält, die üblicherweise nicht im Anzeigebereich des Browsers dargestellt werden - dem HTML-Körper (
BODY), der jene Informationen enthält, die gewöhnlich im Anzeigebereich des Browsers zu sehen sind.
Somit sieht die Grundstruktur einer Webseite wie folgt aus: