CSS is awesome: 30 Jahre schönes Web

vor 2 Stunden 1

Vor genau dreißig Jahren, am 10. Oktober 1994, stellte Håkon Wium Lie den ersten Entwurf für CSS vor. Danach entwickelte Lie CSS gemeinsam mit Bert Bos und einem Team im Rahmen des W3C weiter. Ende 1996 konnte CSS Level 1 Recommendation präsentiert werden. Im Jahr 1998 folgte bereits CSS 2. Eine Überarbeitung der Sprache fand dann dreizehn Jahre später mit CSS 2.1 statt. In der Zwischenzeit war die CSS Working Group fleißig dabei, CSS 3 zu entwickeln und auch Teile bereits zu veröffentlichen. Das lag daran, dass CSS 3 kein Gesamt-Release von neuen Features der Sprache war, sondern CSS in zig unterschiedliche Module aufgeteilt hat, die fortan separat weiterentwickelt und vorangetrieben wurden. Heutzutage spricht man daher auch meist nur noch einfach von CSS ohne Versionsnummer, da sich die Sprache innerhalb ihrer Module weiterentwickelt und es kein "großes" Release mehr gibt.

Hilko Holweg ist Frontend-Developer bei Heise Medien, wo es ihm besonders die Web-Performance angetan hat. Neben dem Frontend interessiert er sich auch für vieles mehr, das mit Technik zu tun hat. So schrieb er beispielsweise für die c't einen Artikel über einen digitalen Assistenten mit Offline-Spracherkennung auf Basis des Raspberry Pi.

2003 startete die Website CSS Zen Garden, die alle faszinierte, die sich mit CSS beschäftigen. Das Konzept: Man kann ein Website-Layout einreichen, aber das HTML ist für alle identisch. Der CSS Zen Garden hat damit gezeigt, was für großartige Möglichkeiten allein mit CSS bestanden, um völlig unterschiedliche Layouts zu gestalten, und das in einer Zeit, als viele die Sprache erst noch lernten und mit so manchen Schwierigkeiten zu kämpfen hatten.

Die ersten zwanzig Jahre waren vor allem durch die Browserhersteller eine holprige Zeit für CSS – oder jedenfalls für diejenigen, die es einsetzen wollten. Browserhersteller griffen sich munter heraus, welche Features sie implementieren wollten – und wie die Implementierung aussah. Absprachen fanden kaum statt und so mussten die Frontend-Devs dieser Zeit kreativ werden. Sogenannte CSS-Hacks wurden zur Geheimwaffe, um eine Website möglichst identisch auf allen Browsern aussehen zu lassen. Diesen Hacks lag vor allem die Ausnutzung unterschiedlicher Bugs (oder Features?) der Browser zugrunde. So konnte man beispielsweise mit * html { ... } CSS schreiben, das nur der Internet Explorer 6 interpretierte.

Zu den CSS-Hacks gesellten sich dann noch Vendor-Prefixes. Browserhersteller implementierten CSS-Features mit einem eigenen Prefix (-webkit-, -moz-, -o- und -ms-), wenn diese noch im Entwicklungsstadium oder sogar Eigenkreationen waren, die gar nicht zum CSS-Standard gehörten. Entwicklerinnen und Entwickler setzten diese Vendor-Prefixes dann aber bereits produktiv ein, was dazu führte, dass einige so verbreitet waren, dass Browserhersteller die Prefixe der anderen Browser bei sich nutzbar machten.

Aus dieser Zeit stammt vermutlich bis heute die Annahme, dass CSS sehr kompliziert und bisweilen erratisch sei. Heute ist CSS zwar komplex, da es mit den Anforderungen gewachsen ist, die wilde Phase ist jedoch vorbei.

In den vergangenen zehn Jahren hat sich CSS massiv weiterentwickelt und ist dem Feature-Ruf der Entwicklerschaft gefolgt. Auch aus den Jahren der Pre und Post Processors wurde viel gelernt, so gibt es heutzutage CSS Custom Properties, die sogar typisiert werden können, geschachtelte Selektoren – sogar native Mixins sind in Planung. Bei Schriften gibt es Unterstützung für Variable Fonts, zuletzt wurden zig Möglichkeiten für bessere Farbwiedergabe in unterschiedlichen Farbräumen ergänzt und die Verantwortlichen für das "CSS Values and Units Module" haben erst vergangenen Monat den ersten Working Draft für Level 5 ihres Moduls veröffentlicht.

Auch die Browserhersteller haben dazugelernt. Noch im Test befindliche Features sind hinter Flags versteckt oder gleich erst in Canary-/Nightly-/Technology-Preview-Varianten ihrer Browser. Seit einigen Jahren gibt es das Interop-Projekt, bei dem Browserhersteller ein Jahr lang den Fokus darauf legen, bestimmte Web-Features in allen Browser-Engines identisch zu implementieren. Mit Baseline soll es einen besseren Überblick darüber geben, welche Features in allen Browsern gleichermaßen verfügbar und weitverbreitet sind. Aktuell bei Masonry und anpassbaren <select>s bitten die Browserhersteller sogar während der Entwicklung um Feedback, wie die neuen Features am besten implementiert werden sollen.

Auch Håkon Wium Lie (übrigens Keynote-Speaker der diesjährigen c't webdev) freut sich über den Werdegang und die Zukunft von CSS:

"Ich freue mich, dass der erste CSS-Vorschlag heute 30 Jahre alt wird. Es war ein Abenteuer, CSS als Baby, Teenager und aufstrebenden Profi zu erleben. Manchmal hat es sich schlecht benommen, aber meistens war es eine Quelle der Freude und Aufregung. CSS hat jeden Bildschirm erobert, das nächste Ziel ist, dass gedruckte Bücher mit CSS formatiert werden."

Zum Schluss bleibt mir nur zu sagen: CSS ist großartig – Happy Birthday! (rme)

Gesamten Artikel lesen