Warum gibt's HTML und CSS?

Warum wurden HTML und CSS getrennt?

HTML heißt Hypertext Markup Language.
CSS heißt Cascading Style Sheets.

Zu HTML:

HTML wurde gegen 1990 unter anderem von Tim Berners-Lee und einigen seiner Kollegen am CERN in Genf entwickelt. Es ist eine Sprache, um Bestandteile eines Dokumentes logisch in einzelne Bestandteile zu zerlegen. Es gibt Elemente zum Auszeichnen von Überschriften, Textabsätzen, Listen, Tabellen und vielem anderen mehr.

WWW-Browser, stellen diese Seiten dann auf dem Bildschirm dar. Dabei verwenden Sie ein sogenanntes Default Stylesheet, das für bestimmte Elemente ein bestimmtes Aussehen festlegt. So kann zum Beispiel eine Überschrift erster Ordnung größer dargestellt, als ein normaler Textabsatz. Das ist aber keineswegs zwingend, denn die Spezifikation von HTML4.01 sagt: Visual browsers usually render more important headings in larger fonts than less important ones. Gewöhnlich werden sie Größer dargestellt, aber Sie müssen es nicht.

Mit anderen Worten: Mit HTML gewichtet man die logische Auszeichnung eines Dokumentes. Nicht mehr und nicht weniger. Die Gewichtung ist schon schwer genug, da muß man die Sache nicht noch durch physikalische Auszeichnungen verkomplizieren.

HTML ist nicht dazu gedacht, um anzugeben, wie ein Element aussehen soll. Deswegen gibt's auch keine 'Befehle' in HTML (dort heißt es: Element) und in CSS (dort heißt es Regel oder Regelsatz). HTML und CSS werden auch nicht programmiert, sondern HTML wird einfach geschrieben.

Man zeichnet eine Überschrift erster Ordnung als Überschrift erster Ordnung aus und es ist dem Browser überlassen, wie diese dargestellt wird.

Das wollen viele Webautoren aber nicht, sie wollen Kontrolle über die Schriftart und Größe, über die Farbe und Seitenabstände. Eine erste Möglichkeit, die Schriftart, Farbe, etc. zu bestimmen, bildete das <font> Element, das mit HTML Version 3.2 eingeführt wurde. Jetzt stellt sich die Frage, wie man dieses Element in der logischen Auszeichnung beurteilt.

Oben wurde gesagt, daß HTML eine Sprache ist, die den Text logisch auszeichnet, also nach Überschriften, Absätzen, Listen, Tabellen, etc. gewichtet. Das <font> Element gewichtet jedoch nicht den Inhalt, sondern ist nur ein optisches Element, das eigentlich nicht zu HTML passt und dementsprechend in neueren Spezifikationen der Sprache nicht mehr zu finden ist.

Was tun, wenn man auf Styling nicht verzichten will? Nun: Dafür gibt es CSS.

Zu CSS:

CSS hat den Sinn einer Seite Style zu geben, ohne in die logische Auszeichnung des Dokumentes einzugreifen. Es ergänzt HTML unmittelbar und geht Hand in Hand mit der Sprache. CSS klinkt sich praktisch nahtlos in HTML ein und erlaubt das physische Formatieren des Textes.

Warum nicht alles in einer Sprache?

HTML ist nur dazu da, einen Text logisch zu gewichten und nicht die Ausgabe der Webseite bspw: auf dem Monitor des Besuchers zu beeinflussen. Es ist MarkupLanguage und nicht formatting Language. Es gibt zwei Sprachen, eine um den Inhalt zu strukturieren und eine, um die Ausgabe zu beeinflussen. Eine Zeitlang wurden beide vermischt, was aber ein bißchen unübersichtlich ist. Das hat das w3c auch erkannt und einige Elements, wie <FONT>, <U>, <MENU> und einige andere mehr als deprecated (mißbilligt) erklärt, weil es physische Formatierungen sind, die inzwischen CSS überlassen bleiben. Eine komplette Liste aller Elemente und auch derer, die deprecated sind, findet sich in der HTML 4.01 Spezifikation. Die XHTML-Spezifikation und die CSS Spezifikation finden sich ebenfalls beim w3c.

Beispiele für die Mißachtung der Trennung von HTML und CSS?

Überlegungen zur Einbindung von Flash und Scriptsprachen in eine Webseite und warum man seinen Quellcode validieren sollte.

Web-Technik und Anleitungen.