HTML dient als Auszeichnungssprache dazu, einen Textsemantisch zu strukturieren, nicht aber zu formatieren.[6] Die visuelle Darstellung ist nicht Teil der HTML-Spezifikationen und wird durch den Webbrowser und Gestaltungsvorlagen wieCSS bestimmt. Ausnahme sind die als veraltet (englischdeprecated) markierten präsentationsbezogenen Elemente.
Vor der Entwicklung desWorld 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 derEuropä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.
Dem Text wird durch Auszeichnungen (englischmarkup) von Textteilen eine Struktur gegeben.
Die Auszeichnung erfolgt durchgenormte (SGML) Elemente. Die meisten dieser HTML-Elemente werden durch einTag-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 einenAbsatz oderh1 für eineÜberschrift erster Ordnung) und optional eine Liste seiner Attribute (z. B.class="warning" oderid="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 einElement allgemeiner SGML-Spezifikation. Diese Elemente lassen sich nach Regeln, die in einerDokumenttypdefinition (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: InXHTML 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.<imgsrc="E-Mail-Button.jpg"alt="E-Mail">
Es geht in HTML um beschreibende (englischdescriptive), nicht um verfahrens- (englischprocedural) und darstellungsorientierte (englischpresentational)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 Textvisuell 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 demBenutzer 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 aufComputerbildschirmen dargestellt werden, können sie auch auf anderen Medien ausgegeben werden, etwa aufPapier oder mittelsSprachausgabe.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> undnoshade alsveraltet (englischdeprecated) 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 desQuelltextes sowie das Verarbeiten der vorhandenen Informationen wird in der Fachsprache auch alsParsen bezeichnet, und die Aufbereitung für das Ausgabemedium alsRendern. Die SpracheHTML beschreibt, wie der Browser (oder ein anderes Programm, wie z. B. einTexteditor) 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 welcherSchriftgröße oderSchriftschnitt diese darzustellen ist – hier haben sich nur gewisse übliche Standardeinstellungen eingebürgert, die aber nicht Teil der HTML-Spezifikation sind.
Der ursprünglich auf 7-Bit-ASCII angelegte Standard-Zeichensatz wurde schon in den Frühzeiten desWWW 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 vonUTF (Unicode) voraus, die heute in allen gängigen Browsern implementiert ist. HTML ist damit auf plattformunabhängige Portierbarkeit angelegt, sofern diese vom verwendetenHTML-Renderer unterstützt werden. Die Wahl des zugrunde liegenden Zeichenvorrats für ein Webdokument erfolgt in denMeta-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 deutscheUmlaute, können auf mehrere ArtenSonderzeichen codieren;[7] so kann ein A-Umlaut („Ä“) entweder als HTML-Entität (ä), als Unicodedezimal (ä) oder als Unicodehexadezimal (ä) 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 demMIME-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 desLinks unterscheiden muss.
Ein ähnliches Konzept (logische Beschreibung) wie hinter HTML steht hinter dem SatzsystemTeX/LaTeX, das im Unterschied zu HTML jedoch auf die Ausgabe per Drucker auf Papier zielt.
HTML wurde erstmals am 13. März 1989 vonTim Berners-Lee amCERN 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 desNetscape-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 vonApplets.
HTML 4.0 (18. Dezember 1997): Einführung vonStylesheets, Skripten und Frames. Auch eine Trennung inStrict, Frameset undTransitional 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 vonXML. 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. – DasW3C 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]
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:
<!DOCTYPE html><html><head><title>Titel der Webseite</title><metahttp-equiv="content-type"content="text/html; charset=utf-8"/><!-- weitere Kopfinformationen --><!-- Kommentare werden im Browser nicht angezeigt. --></head><body><p>Inhalt der Webseite</p></body></html>
bindet eine externe Datei ein. Browser dürfen solche Objekte im Dokumentkopf nicht darstellen. Ab HTML5 ist das object-Tag nicht mehr im HTML-Kopf erlaubt.[16]
Der HTML-Körper (englischbody) enthält die eigentlichen Seiteninformationen. HTML unterscheidet zwischen Block- und Inline-Elementen. Der wesentliche Unterschied ist, dass erstere in der Ausgabe einen eigenen Block erzeugen, in dem der Inhalt untergebracht wird, während die Inline-Elemente den Textfluss nicht unterbrechen. Vereinfacht gesprochen haben Block-Elemente immer ihren eigenen Absatz. Mithilfe vonCSS ist es jedoch möglich, Block-Elemente wie ein Inline-Element darzustellen und umgekehrt. Zudem lassen sich alle Elemente via CSS auch alsinline-block auszeichnen, mit dem Ergebnis, dass ein solches Element sowohl Eigenschaften eines Block-Elementes als auch eines Inline-Elementes besitzt.
Eine Überschrift erster Ordnung wird so ausgezeichnet:
<h1>Überschrift</h1>
h1 steht fürHeading 1, zeichnet also eine Überschrift der ersten (und in HTML höchsten) Gliederungsstufe aus. Weiter möglich sindh2 bish6, Überschriften zweiter bis sechster Gliederungsstufe.
<ahref="http://example.com/">Dies ist ein Verweis auf example.com</a>
Hyperlinks sind Verweise auf andere Ressourcen, meistens ebenfalls HTML-Dokumente, die üblicherweise im Browser durch Klick verfolgt werden können. Dieser Link könnte sogerendert werden:Dies ist ein Verweis auf example.com Ebenso ist an diesem Beispiel zu sehen, dass das Link-Element ein Inline-Element ist und keine neue Zeile beginnt.
Normaler Text wird standardmäßig mitp (fürParagraph) angegeben, obwohl ein Text ohnep problemlos möglich wäre, allerdings ist es sehr zu empfehlen, da dadurch zum einen eine Abtrennung zwischen Quelltext und Ausgabe möglich ist, und zum anderen spätestens bei CSS-Programmierung der Befehl zwingend notwendig ist.
So wird ein Text in HTML ausgegeben:
<p>Ich bin ein Beispieltext</p>
Zur Logik stehen zum Beispiel die Elementestrong oderem bereit, mit denen sich stark hervorgehobener oder betonter Text auszeichnen lässt. Per Voreinstellung (lt. W3C-Empfehlung) werdenstrong- undem-Elemente durchFettschrift beziehungsweisekursive Schrift gerendert.
Die Strukturbeschreibung des Textes vereinfacht es, das Rendern dem Betrachter anzupassen, um etwa den Text einem Sehbehinderten vorzulesen oder alsBraille auszugeben.
Beim Entwurf der letzten HTML-Version 4 sollte der Tatsache, dass in vielen HTML-Dokumenten noch Elemente und Attribute zur Präsentation eingesetzt werden, Rechnung getragen werden. Das Ergebnis waren schließlich drei Varianten:
DieseDokumenttypdefinition (DTD) umfasst den Kernbestand an Elementen und Attributen. Es fehlen die meisten Elemente und Attribute zur Beeinflussung der Präsentation, unter anderem die Elementefont,center undu sowie Attribute wiebgcolor,align undtarget. Deren Rolle sollen inStrict-Dokumenten Stylesheets übernehmen. Text und nicht-blockbildende Elemente innerhalb der Elementebody,form,blockquote undnoscript müssen sich grundsätzlich innerhalb eines Container-Elements befinden, zum Beispiel in einemp-Element.
Die Transitional-Variante enthält noch ältere Elemente und Attribute, die auchphysische Textauszeichnung ermöglichen. Durch diese DTD soll Webautoren, die noch nicht logische Strukturierung und Präsentation voneinander trennen, die Möglichkeit gegeben werden, standardkonformes HTML zu schreiben. Gleichzeitig soll sie sicherstellen, dass bestehende Webseiten weiterhin durch aktuelle Webbrowser angezeigt werden können.
Im Laufe der Jahre ist HTML um Elemente erweitert worden, die der visuellen Gestaltung der Dokumente dienen. Das lief der ursprünglichen Idee einer Systemunabhängigkeit entgegen. Eine Rückbesinnung auf die Trennung von Struktur undLayout (besser: Präsentation) wurde durch die Definition vonCascading Style Sheets (CSS) vorgenommen. So soll das Aussehen bzw. die Darstellung des Dokuments in einer separaten Datei, dem sogenannten Stylesheet, festgelegt werden. Dies verbessert die Anpassungsfähigkeit des Layouts an das jeweilige Ausgabegerät und an spezielle Bedürfnisse der Benutzer, beispielsweise eine spezielle Darstellung für Sehbehinderte. Heutzutage ist die CSS-Unterstützung der Browser ausreichend, um damit eine anspruchsvolle Gestaltung zu realisieren.
In den Anfangsjahren von HTML bis in die 2000er Jahre hinein wurde noch nicht streng zwischen Layout und Seitenphysik unterschieden. So wurde Design mit Hilfe von Layout-Attributen wiecolor="Farbe" oder Layout-Tags wie<font> umgesetzt oder das Aussehen von Tabellen direkt imtable-Bereich grob vorgegeben. Dies gilt heute als veraltet und unprofessionell. Außerdem lässt sich der CSS-Code auch in einer Seite ohne ausgelagerte Datei einbinden.
Eine CSS-Datei kann im HTML-Kopf über das link-Element eingebunden werden:
Schon sehr früh in der Geschichte von HTML wurden Zusatztechniken erfunden, die es ermöglichen, HTML-Dokumente während der Anzeige im Browser dynamisch zu verändern. Die gebräuchlichste istJavaScript. Man spricht bei solchen interaktiven Dokumenten vondynamischem HTML. Diese Techniken wurden von verschiedenen Browser-Herstellern, allen voranMicrosoft undNetscape, unabhängig voneinander entwickelt. Daher gab es erhebliche Probleme bei der Umsetzung der Techniken zwischen den verschiedenen Browsern. Mittlerweile interpretieren alle verbreiteten JavaScript-fähigen Browser dasDocument Object Model (DOM). Dadurch ist es möglich, in allen Browsern lauffähige Skripte zu schreiben. Es gibt jedoch noch immer Differenzen bei der Unterstützung des DOM-Standards.
Auf Grundlage von HTML 4.01 (SGML) wurdeXHTML 1.0 entwickelt. XHTML genügt den im Vergleich zu SGML strengerensyntaktischen Regeln von XML, ist aber in seinen dreiDTD-Variantensemantisch mit der jeweils entsprechenden DTD-Variante von HTML 4.01 identisch.
Die jeweiligen Vorteile vonSGML undXML der bisherigen HTML-Versionen wurden vereint in HTML5. Abweichend von den bisherigen HTML-Versionen gibt es in HTML5 keine DTD mehr.
Mit derAjax-Technologie ist es mittelsJavaScript möglich, einzelne bereits geladene Webbrowser-Inhalte gezielt zu ändern und nachzuladen, ohne dass die Webseite komplett neu geladen werden muss. Wegen des geringeren Datenaufkommens wird zum einen eine schnellere Webserver-Antwort ermöglicht, und zum anderen lassen sich Reaktionsweisen von Desktop-Anwendungen simulieren.
↑abHTML 5.2. Recommendation (Empfehlung). W3C, 14. Dezember 2017, abgerufen am 1. Januar 2018 (englisch).
↑abSimon Pieters: HTML 5 differences from HTML 4. w3.org, 18. September 2014, abgerufen am 1. Oktober 2014 (englisch): „HTML 5 replaces these documents. [DOM2HTML] [HTML4] [XHTML1]“