- HTML
-
HTML (Hypertext Markup Language) Dateiendung .html, .htm
MIME-Type text/html
Entwickelt von World Wide Web Consortium Art Auszeichnungssprache Erweitert von SGML Erweitert zu XHTML Standard(s): W3C HTML 4.01
W3C HTML 3.2Die Hypertext Markup Language (HTML, dt. Hypertext-Auszeichnungssprache), oft kurz als Hypertext bezeichnet, ist eine textbasierte Auszeichnungssprache zur Strukturierung von Inhalten wie Texten, Bildern und Hyperlinks in Dokumenten. HTML-Dokumente sind die Grundlage des World Wide Web und werden von einem Webbrowser dargestellt. Neben den vom Browser angezeigten Inhalten einer Webseite enthält HTML zusätzliche Angaben in Form von Metainformationen, die z. B. über die im Text verwendete Sprache oder den Autor Auskunft geben oder den Inhalt des Textes zusammenfassen. Die Auszeichnungssprache wird vom World Wide Web Consortium (W3C) weiterentwickelt. Aktuell trägt HTML die Versionsnummer 4.01. HTML 5 befindet sich in der Entwicklung. Parallel existiert die Extensible Hypertext Markup Language (XHTML), die zeitweilig als Ersatz für HTML 4.01 gedacht war.
Inhaltsverzeichnis
Überblick
Zur Adressierung anderer Dokumente im Internet werden innerhalb des Dokumentes Hyperlinks verwendet. Dies ist die Grundlage des World Wide Web. Namen gebend sind die Hypertext-Elemente, die zum Verweis auf andere Textstellen oder auf andere Dokumente dienen. Die Programme, die die Struktur des Dokuments interpretieren und als formatierte Webseiten darstellen, werden Webbrowser genannt.
Syntax
Dem Text wird durch Auszeichnungen (engl. markup) von Textteilen mit Tags eine Struktur verliehen. Die meisten dieser HTML-Elemente werden durch ein Tag-Paar markiert, das heißt durch einen Starttag und einen dazugehörigen Schluss- oder Endtag. Ein Starttag beginnt immer mit dem Zeichen „<“ (kleiner als). Es folgt die eigentliche Bezeichnung des Tags (z. B. „p“ für einen Absatz oder „h1“ für eine Überschrift) und optional eine Liste seiner Attribute (zusätzliche Angaben zum Element). Mit einem „>“ (größer als) hört der Starttag wieder auf. Ein Schlusstag besteht aus den Zeichen „</“, der Bezeichnung des Tags und dem abschließenden „>“. Ein Schlusstag kann keine Attribute haben. Die zusammengehörenden Start- und Schlusstags bilden zusammen mit dem dazwischenliegenden Text (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>
In älteren HTML-Versionen durften bestimmte Tags ausgelassen werden, sofern sie keine Attribute hatten (z. B.
<html>
…</html>
,<head>
…</head>
,<body>
…</body>
). Bei bestimmten Tagpaaren durfte der Schlusstag fehlen (z. B.</p>
oder</li>
). Zudem spielte bei Tags Groß- und Kleinschreibung keine Rolle (z. B.<ol>
,<UL>
,<Li>
). Zum Vergleich: In XML muss auf jeden Starttag ein entsprechender Schlusstag auf gleicher Ebene folgen, und Tags werden grundsätzlich klein geschrieben. Diese Regeln gelten auch in der Definition von XHTML.Neben Elementen mit Start- und Schlusstag gibt es in HTML auch leere Elemente, wie etwa Zeilenumbrüche oder Bilder.
Eine Textzeile,<br />die hier fortgesetzt wird. <img src="E-Mail-Button.jpg" alt="E-Mail" />
Es geht in HTML um beschreibende (engl. descriptive), nicht um verfahrens- (engl. procedural) und darstellungsorientierte (engl. presentational) Textauszeichnung, auch wenn sich HTML in früheren Versionen dafür verwenden ließ. Das heißt, HTML-Tags sind keine Angaben zur Präsentation, die dem Webbrowser mitteilen, wie er den Text (zwischen den Tags) visuell zu formatieren hat. Vielmehr sind Tags 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.Um auf die Präsentation eines HTML-Dokuments in verschiedenen Medien Einfluss zu nehmen, eignen sich CSS-Formatvorlagen. Daher gelten Elemente und Attribute zur Präsentation wie
<font>…</font>
,<b>…</b>
undwidth
als veraltet und sollten nach allgemeiner Auffassung vermieden werden. Die meisten Elemente und Attribute zur Präsentation wurden in der HTML-4.01-Spezifikation als missbilligt (engl. deprecated) markiert.Wer den Quelltext von HTML-codierten Seiten (Webseiten, HTML-Dokumente) ansehen möchte, kann dafür in den meisten Browsern die Funktion „Quelltext anzeigen“ wählen. Der Browser öffnet ein neues Fenster und zeigt das HTML-Dokument so, wie er es vom Server empfangen hat, an. In HTML-Editoren editiert man entweder direkt in diesem Code, oder nach WYSIWYG und ähnlichen Prinzipien an einem Erscheinungsbild, das vom Editor in den nötigen Code umgesetzt wird.
Das Einlesen des Quelltexts und Verarbeiten der vorhandenen Informationen ist das Parsen, die Aufbereitung für das Ausgabemedium das Rendern: HTML beschreibt, wie der Browser oder Editor die Auszeichnungen des Texts 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 sind – hier haben sich nur gewisse übliche Standardeinstellungen eingebürgert, die aber nicht Teil der HTML-Spezifikation sind.Diese Eigenschaft führt dazu, dass sich HTML nicht dazu eignet, ein Dokument exakt so darzustellen, wie der Autor es sich wünscht, sondern vielmehr das Dokument sich weitgehend den technischen Gegebenheiten und Bedürfnissen des Lesers anpasst.
Sprachtyp
HTML ist keine Seitenbeschreibungssprache wie etwa PostScript, da keine Papier-Seiten beschrieben werden, sondern Text strukturell und logisch ausgezeichnet wird. HTML ist eine Auszeichnungssprache und wird als solche auch nicht programmiert, sondern schlicht geschrieben.
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
HTML wurde am 13. März 1989 von Tim Berners-Lee am CERN in Genf festgelegt.[1]
- HTML (ohne Versionsnummer, 3. November 1992): Die Urversion, die sich nur an Text orientierte.[2]
- HTML (ohne Versionsnummer, 30. April 1993): Zu Text kommt 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.[3]
- HTML 2.0 (November 1995): Die mit RFC 1866 definierte Version führt u. a. Formulartechnik ein. Der Status dieses Standards ist „HISTORIC“. Auch die Vorgänger sind veraltet.
- HTML 3.0: Die Version erscheint nicht, weil sie mit der Einführung des Netscape-Browsers in der Version 3 bereits vor der Veröffentlichung veraltet ist.
- HTML 3.2 (14. Januar 1997): Neu in dieser Version sind zahlreiche Features wie Tabellen, Textfluss um Bilder, Einbindung von Applets.
- HTML 4.0 (18. Dezember 1997): Mit dieser Version werden Stylesheets, Skripte und Frames eingeführt. Auch eine Trennung in Strict, Frameset und Transitional erfolgt. Am 24. April 1998 erscheint eine leicht korrigierte Version dieses Standards.
- HTML 4.01 (24. Dezember 1999): Ersetzt HTML 4.0 mit vielen kleineren Korrekturen.
- HTML 5 (Working Draft, 10. Juni 2008):[4] HTML 5 schafft auf Basis von HTML 4.01 und XHTML 1.0 ein neues Vokabular. Die zu HTML gehörende DOM-Spezifikation wird ebenfalls überarbeitet und erweitert.
- XHTML 1.0 (26. Januar 2000): Eine Neuformulierung von HTML 4.01 mit Hilfe von XML. Am 1. August 2002 erscheint eine überarbeitete Version.
- XHTML 1.1 (31. Mai 2001): Nachdem XHTML in Module aufgeteilt wurde, wird mit XHTML 1.1 eine strikte Version definiert, bei der die mit HTML 4 eingeführten Varianten Frameset und Transitional entfallen.
- XHTML 2.0 (öffentlicher Entwurf): Diese Version basiert nicht mehr auf HTML 4.01 und führt einige neue Tags ein, so z. B.
<nl>
für Navigationslisten. Die Trennung von Auszeichnung und Stil soll in dieser Version vollendet werden.
HTML-Struktur
Allgemeine Struktur
Ein HTML-Dokument besteht aus drei Bereichen:
- der Dokumenttypdeklaration (Doctype) ganz am Anfang der Datei, die die verwendete Dokumenttypdefinition (DTD) angibt, z. B. HTML 4.01 Strict,
- dem HTML-Kopf (
HEAD
), der hauptsächlich technische oder dokumentarische Informationen enthält, die überwiegend nicht im Browser sichtbar sind und - dem HTML-Körper (
BODY
), der anzuzeigende Informationen enthält.
Somit sieht die Grundstruktur einer Webseite wie folgt aus:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title> Titel der Webseite </title> <!-- Evtl. weitere Kopfinformationen --> </head> <body> Inhalt der Webseite </body> </html>
HTML-Kopf
Im Kopf können sieben verschiedene Elemente angewandt werden:
title
- bezeichnet den Titel der Seite, der in der Titelleiste angezeigt wird (auf dieser Seite Hypertext Markup Language – Wikipedia).
meta
- kann vielfältige Metadaten enthalten. Siehe Meta-Tags.
base
- gibt entweder eine Basis-URI oder einen Basisframe an.
link
- dient zur Angabe von logischen Beziehungen zu anderen Ressourcen. Am häufigsten zur Einbindung von Stylesheets benutzt.
script
- bindet Code in einer bestimmten Skriptsprache ein, hauptsächlich JavaScript.
style
- enthält Stylesheet-Code, hauptsächlich CSS-Regeln.
object
- bindet eine externe Datei ein. Browser dürfen solche Objekte im Dokumentkopf nicht darstellen.
HTML-Körper
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 – dabei sei gesagt, dass einige Elemente mit Hilfe von CSS in das andere Format transformiert werden können. Zu den Block-Elementen gehören z. B. die Überschriften und die Tabellen.
Eine Hauptüberschrift wird so ausgezeichnet:
<h1>Hauptüberschrift</h1>
h1
steht für Heading 1, zeichnet also eine Überschrift der höchsten Gliederungsstufe aus. Weiter möglich sindh2
bish6
, Überschriften zweiter bis sechster Gliederungsstufe. Die Präsentation dieser Überschriften ist von ihrer strukturierenden Bedeutung unabhängig und kann mit CSS beeinflusst werden.Ein Hyperlink:
<a href="http://www.example.com/">Dies ist ein Link auf example.com</a>
Hyperlinks sind Verweise auf andere Dateien, meistens ebenfalls HTML-Dateien, die üblicherweise im Browser durch Klick verfolgt werden können. Dieser Link könnte so gerendert werden: Dies ist ein Link auf example.com.
Zur Logik stehen zum Beispiel die Elemente
strong
undem
bereit, mit denen sich stark hervorgehobener oder betonter Text auszeichnen lässt. Per Voreinstellung (lt. W3C-Standard) werdenstrong
- undem
-Elemente durch Fettschrift beziehungsweise kursive Schrift gerendert.Die Strukturbeschreibung des Textes, wie sie die obigen Beispielen veranschaulichen, vereinfacht es, das Rendern dem Betrachter anzupassen, um etwa Text einem Sehbehinderten vorzulesen oder als Braille auszugeben.
HTML-Varianten
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, aber auch eine stilistisch saubere Dokumenttypdefinition angeboten werden. Das Ergebnis waren schließlich drei Varianten:
Strict
Diese DTD umfasst den Kernbestand an Elementen und Attributen. Es fehlen die meisten Elemente und Attribute zur Beeinflussung der Präsentation, unter anderem die Elemente
font
,center
undu
sowie Attribute wiebgcolor
,align
undtarget
. Deren Rolle sollen in Strict-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.Transitional
Die Transitional-Variante enthält noch ältere Elemente und Attribute, die auch physische 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.
Frameset
Diese Variante enthält zusätzlich zu allen Elementen der Transitional-Variante noch die Elemente für die Erzeugung von Framesets.
Zukunft der Varianten
Mit XHTML 1.1, der neuesten Version von HTML, sowie beim im Entwicklungsstadium begriffenen XHTML 2.0 verzichtet das W3-Consortium wieder auf die Unterscheidung und führt lediglich die Strict-Variante als „reine Lehre“ weiter.
Elemente, die bislang nur in den Varianten Transitional und Frameset vorkamen, werden beinahe alle entfallen. Entsprechende Effekte müssen durch CSS, JavaScript, XFrames oder andere Methoden erreicht werden, da sie zur logischen Textauszeichnung nicht notwendig sind.
Ein Attribut, das aus der Transitional-Variante voraussichtlich den „Sprung“ in XHTML 2.0 schafft, ist das „value“-Attribut bei nummerierten Listenpunkten, das erlaubt, die Nummer des Listenpunktes selbst festzulegen.
Zusatztechniken und Weiterentwicklungen
Stylesheets
Im Laufe der Jahre ist HTML um Elemente erweitert worden, die sich mit der Gestaltung des Dokuments befassen, was der ursprünglichen Idee der Systemunabhängigkeit entgegen lief. Eine Rückbesinnung auf die Trennung von Inhalt (Struktur) und Layout wurde durch die Definition von Cascading Style Sheets (CSS) vorgenommen. So soll das Aussehen des Dokuments in einer separaten Datei, dem so genannten Stylesheet, festgelegt werden. Dies verbessert die Anpassungsfähigkeit des Layouts an das jeweilige Ausgabegerät und an spezielle Bedürfnisse der Benutzer, z. B. von Sehbehinderten. Heutzutage ist die CSS-Unterstützung der Browser ausreichend, um damit eine anspruchsvolle Gestaltung zu realisieren.
Dynamisches HTML
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 ist JavaScript. Man spricht bei solchen interaktiven Dokumenten von dynamischem HTML. Diese Techniken wurden von verschiedenen Browser-Herstellern, allen voran Microsoft und Netscape, 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 das Document 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.
XML
Mittlerweile wurde die letzte Version des HTML-Standards (HTML 4.01) in der Metasprache XML neu formuliert. Das daraus entstandene XHTML 1.0 genügt den im Vergleich zu SGML strengeren syntaktischen Regeln von XML, ist aber in seinen drei DTD-Varianten semantisch mit der jeweils entsprechenden DTD-Variante von HTML 4.01 identisch. Aktuell liegt der XHTML-Standard in der Version 1.1 vor, der eine zusätzliche Modularisierung der Elemente einführt.
Als zukünftiges universelles Format wird zunehmend XML selbst eingesetzt. Dieses arbeitet ebenfalls mit Tags, die jedoch per Dokumenttypdefinition sehr restriktiv eingesetzt werden können. XML ermöglicht somit ein selbstbeschreibendes Datenmodell. Zur Umwandlung von in XML gespeicherten Daten in die entsprechenden Anzeigeformate (z. B. XHTML) kann die Stylesheet-Sprache XSL Transformation verwendet werden.
Ajax
Ajax beschreibt die Kombination bekannter Techniken wie JavaScript, XML und DOM. Dadurch wird die Änderung einer Webseite möglich, ohne sie vollständig neu laden zu müssen. Das Ziel sind hier dynamische Seiten, die wie Desktop-Anwendungen reagieren können.
Unterschiedliche Interpretation von Webdokumenten
Trotz der Festlegungen in den Standards kommt es in verschiedenen Browsern zu unterschiedlichen Darstellungen derselben Webseite. Einer der Hauptgründe hierfür ist der unterschiedliche Umgang mit Fehlern im Seitenquelltext. Aber selbst valide (fehlerfreie) Seiten können unterschiedlich dargestellt werden, da nicht alle Standards von allen Browsern gleichermaßen erfüllt werden. Unterschiede gibt es sowohl im Bereich HTML als auch im CSS und in JavaScript. Sogar im selben Browser wird dasselbe Dokument je nach verwendeter Dokumenttypdeklaration unterschiedlich dargestellt[5].
Daher ist es sinnvoll, während der Entwicklungsphase eine Seite in möglichst vielen Browsern und Browsergenerationen zu testen, um zumindest annähernd eine gleiche Darstellung zu erreichen oder um wenigstens zu gewährleisten, dass alle wichtigen Seiteninhalte trotz unterschiedlicher Darstellung erreichbar sind.
HTML lernen
Die Lektüre einer modernen linearen Einführung (siehe Weblinks) und die Handarbeit direkt in einem Texteditor ist empfehlenswert, um HTML richtig zu verstehen und voll auszunutzen.
Für das schnelle Erstellen von Webseiten ohne tiefere HTML-Kenntnis mag der Gebrauch eines so genannten WYSIWYG-Editors zunächst genügen. Diese Editoren produzieren einen HTML-Code, der die optischen Vorstellungen weitestgehend widerspiegelt. Allerdings wird die strukturelle und logische Auszeichnung, die dem Text erst einen echten Mehrwert gibt, dabei vernachlässigt. Diese erfordert ein gutes Verständnis von HTML, das ein WYSIWYG-Editor nicht ersetzen kann. Hinzu kommt, dass diese Editoren gelegentlich ungültiges HTML produzieren, was die Darstellung des Dokuments von der Fehlertoleranz des Webbrowsers abhängig macht. In der professionellen Webgestaltung werden solche HTML-Editoren daher häufig nur als zusätzliches Hilfsmittel benutzt, um etwa das Grundgerüst von Webseiten zu erstellen. Die Feinarbeit erfolgt dann in einem Texteditor direkt am HTML-Code.
Selfhtml ist ein deutschsprachiges und sehr umfangreiches Projekt, das für viele Themen rund um HTML Referenzmaterial bietet.
Zudem empfiehlt sich eine Beschäftigung mit CSS (Cascading Style Sheets). Diese Technik erlaubt, das Design vom Inhalt zu trennen.
Siehe auch
- Entitäten
- MIME Encapsulation of Aggregate HTML Documents (MHTML)
- Web Accessibility Initiative, Barrierefreies Internet
Literatur
- Stefan Münz, Wolfgang Nefzger: HTML Handbuch. Franzis-Verlag, Poing 2005, ISBN 3-7723-6654-6.
- Stefan Mintert (Hrsg.): XHTML, CSS & Co. Die W3C-Spezifikationen für das Web-Publishing. Addison-Wesley, München 2003, ISBN 3-8273-1872-6.
- Mark Lubkowitz: Webseiten programmieren und gestalten – HTML, CSS, JavaScript, PHP, Perl, MySQL, SVG und Newsfeeds, mit CD. Galileo Press, Bonn 2004, ISBN 3-89842-557-6.
Weblinks
- Einige Notizen zum Ursprung von HTML (englisch)
- Webpräsenz des Standardisierungsgremiums W3C – Tutorials, Spezifikationen, Foren, … (englisch)
Tutorials
- SELFHTML – Ausführliches Tutorial und Dokumentation
- jendryschik.de: Einführung in XHTML, CSS und Webdesign
Validierung
- Checkliste für Webstandards
- W3C-Validator zur Überprüfung der syntaktischen Richtigkeit eines HTML-Dokuments (englisch)
- Verschiedene nützliche Testwerkzeuge, Site Check (englisch)
Standards
- edition W3C.de Die W3C-Spezifikationen in deutscher Übersetzung und Kommentierung
- HTML-Standards: 2.0, 3.2, 4.0, 4.01 (englisch)
Einzelnachweise
- ↑ Information Management: A Proposal, Tim Berners-Lee, 1989
- ↑ HTML, Urversion
- ↑ A Review of the HTML+ Document Format, David Raggett
- ↑ HTML 5, W3C Working Draft
- ↑ Der »DOCTYPE-Switch« und seine Auswirkungen
Standards des World Wide Web ConsortiumsEmpfehlungen (recommendations): Canonical XML | CDF | CGI | CSS | DOM | HTML | MathML | OWL | PLS | RDF | RDF-Schema | SISR | SMIL | SOAP | SRGS | SSML | SVG | SPARQL | Timed Text | VoiceXML | WSDL | XForms | XHTML | XML | XML Base | XML Events | XML Information Set | XML Schema | XML Signature | XPath | XPointer | XQuery | XSL Transformation | XSL-FO | XSL | XLink
Anmerkungen (notes): XHTML+SMIL | XAdES
Arbeitsentwürfe (working drafts): CCXML | CURIE | InkML | XFrames | XFDL | WICD | XHTML+MathML+SVG | XBL | XProc | HTML 5
Wikimedia Foundation.