Dieser Artikel befasst sich mit der Weiterentwicklung von CSS als modulbasiertes CSS3. Es werden kurz die Anfänge sowie der Stand der Entwicklung dargestellt.
Modularisierung
Das W3C begann 1999 mit der Modularisierung von XHTML. Kurzer Zeit später wurde auch CSS davon „betroffen“. Am 14. April 2000 veröffentlichte man ein Working Draft – der erste offizielle – mit dem Titel CSS3 Introduction. Darin wurde mitgeteilt, dass die CSS Working Group die CSS-Spezifikation in Module aufteilen wird.
Und warum gerade Module? Die Erklärung des Konsortiums: Da die Popularität von CSS und somit das Interesse an Erweiterungen wachse, wolle man, anstatt mehrere Ergänzungen in ein einziges, monolithisches Dokument zu zwingen, die Spezifikation in individuelle Stücke aufteilen. Module erlaubten eine schnellere und präzisere Aktualisierung von CSS. Das Resultat würde eine sichtbar schnellere und flexiblere Weiterentwicklung der Spezifikation sein.
Wie jede CSS-Spezifikation zuvor, basiert auch CSS3 auf seinen Vorgänger. Cascading Style Sheets Level 3 verwendet die Spezifikation CSS 2.1 als Kern. Alle neuen Features sollen Erweiterung dieses Kerns darstellen. Jedes Modul kann theoretisch Funktionen hinzufügen oder auch ersetzen. CSS3 soll dabei keine Widersprüche zu CSS 2.1 erzeugen, sondern neue oder überarbeitete Funktionen definieren.
Die neue CSS-Spezifikation war anfangs für 1999 geplant. CSS 2.1, der Übergang zwischen CSS2 und CSS3, ist selbst gerade fertig geworden und bekam am 07. Juni 2011 den Recommendation-Status.
Status der CSS3-Module
Cascading Style Sheets Level 3 hat sich mit der Zeit sehr verändert. Neue Module kamen dazu, einige wurden entfernt, aufgeteilt oder sind Teil eines anderen geworden. Ein Beispiel ist CSS Web Fonts, das angeblich seit 2002 im Last-Call-Status verweilt. Tatsächlich wird es nicht mehr als selbstständiges Modul weiterentwickelt – es ist ein Teil von CSS Fonts.
Die Anzahl der Module ist inzwischen stark gewachsen – etwa 50 (vgl. Bos, 2010), CSS 2.1 mitgezählt, da es als Kern der neuen Spezifikation dient und ein Basis-Modul darstellt. Es ist durchaus möglich, dass sich die Anzahl auch in Zukunft verändert. Am 20. März 2009 kamen z.B. 4 neue Module hinzu – Animations, Transitions, 2d-Transforms, 3d-Transforms (vorgeschlagen von Apple). Alle vier befinden sich noch im Working-Draft-Stadium.
Alle Module sind nach Priorität sortiert – hoch, medium, niedrig. Momentan haben die Module CSS Namespaces, CSS Backgrounds and Borders, CSS Multi-column Layout und Media Queries Vorrang bzw. sind mit der Priorität hoch eingestuft.
Priorität, Status und viele weitere Informationen bezüglich CSS können hier eingesehen werden: http://www.w3.org/Style/CSS/current-work.
Ich arbeite momentan an einer Timeline von CSS3, wo alle Entwicklungsstufen und der aktuelle Stand der Module angegeben sind. Sobald sie fertig ist, wird sie hier veröffentlicht. Interessant dabei ist, die Entwicklung von CSS 2.1 – aber dazu später mehr.
Viele der Module sind leider noch im Working-Draft- oder Last-Call-Status. CSS Basic User Interface ist seit 2004 eine Candidate Recommendation, CSS Hyperlink Presentation ist seit 2004 ein Working Draft (es wurde nur ein Entwurf veröffentlicht). CSS Line Layout und CSS Lists sind seit 2002 im Entwurfsstadium. Und bei CSS Math z.B. steht nur ein Fragezeichen – kein Working Draft, kein veröffentlichtes Dokument. Somit hat man Module, die seit 6 bis 8 Jahren nicht weiterentwickelt worden sind. Ein positives Beispiel ist das Modul Selectors: es ist stabil und bereits in einige Browser vollständig implementiert.
Unzählige Websites zeigen die neuen Funktionen von CSS3. Ein bekanntes Beispiel ist http://www.css3.info. Dort findet man einen CSS Selectors Test und ein Preview einiger neuer Features und CSS-Eigenschaften. Man kann sagen, dass Module mit dem Status Candidate Recommendation oder höher schon heute in vielen Browsern implementiert sind.
Ob Ihr Browser CSS3 unterstützt und falls ja, welche Module genau, können Sie mit Hilfe des folgenden Tests herausfinden (momentan nur in einer Vorabversion vorhanden):
Trotz vorhandener Unterstützung einiger Teilbereiche von CSS Layer 3 ist unumstritten, dass der zukünftige Standard nur sehr langsame Fortschritte macht. Es ist schwer oder gar unmöglich einzuschätzen, wann CSS3 fertig sein wird. Man bedenke, dass die Entwicklung von CSS 2.1 gerade abgeschlossen wurde. Mit diesem Problem und die möglichen Ursachen werden ich in einem späteren Artikel beschäftigen.