Die Entwicklung von Webstandards
Webkit hat seine Schreibweise für CSS-Verläufe kürzlich angepasst. In diesem Zusammenhang möchte ich neben der neuen Syntax auch auf den Entwicklungsprozess eines neuen Webstandards eingehen.
Vor ein paar Monaten schrieb ich einen Artikel für drweb.de über Tabellenlayouts mit CSS3 (Teil 1, Teil 2). Dort hatte ich bei den verwendeten CSS-Verläufen auf die unterschiedlichen Schreibweisen hingewiesen, wobei die von Webkit umfangreicher und komplizierter war:
background:-webkit-gradient(linear, left top, left bottom, from(#656e70), color-stop(50%, #515b5c), color-stop(50.1%, #465153), to(#323e40)); background:-moz-linear-gradient(top, #656e70, #515b5c 50%, #465153 50.1%, #323e40); background:linear-gradient(top, #656e70, #515b5c 50%, #465153 50.1%, #323e40);
Webkit hat nun ebenfalls seine Schreibweise der offiziellen des W3C angeglichen, weshalb wir in Zukunft schreiben können:
background:-webkit-linear-gradient(top, #656e70, #515b5c 50%, #465153 50.1%, #323e40); background:-moz-linear-gradient(top, #656e70, #515b5c 50%, #465153 50.1%, #323e40); background:linear-gradient(top, #656e70, #515b5c 50%, #465153 50.1%, #323e40);
Dadurch erhalten wir nun eine Vereinheitlichung. Haken an der Sache ist allerdings, dass Safari und Chrome das noch nicht verstehen und zumindest bis zum nächsten größeren Update die alte Schreibweise benötigen. Zurzeit funktioniert es nur in den Webkit Nightly Builds.
Auch wenn die Veränderungsprozesse manchmal etwas nervig sind, zeigt dieses Beispiel sehr schön die Entwicklung eines neuen Standards. Die ursprünglich von Webkit erdachte Implementierung von CSS-Verläufen wird von anderen Browserengines übernommen (mit verbesserter Syntax) und schließlich auch Teil des CSS3-Standards. Im Laufe der Entwicklung passt nun Webkit seine Syntax an, sodas eine Vereinheitlichung entsteht.
Hieran wird deutlich, dass neue Funktionen nicht, wie oft angenommen, vom W3C initiert werden, sondern zunächst von den Browserengines erdacht und umgesetzt werden. Die Aufgabe des W3C ist anschließend die Standardisierung einer neuen Funktion, sofern auch weitere Browserengines diese übernehmen.
Außerdem sieht man an diesem Beispiel, wie sinnvoll die sogenannten »vendor prefixes« (die Präfixe der Browserengines wie -webkit, -moz, -o, -ms) sind. Denn obwohl sie in Zeiten des Übergangs zu einer neuen Technologie mehr Schreibaufwand erfordern, zeigen sie an, dass eben jederzeit noch Änderungen möglich sind und auf welche Browser sich diese auswirken. Weiterhin ermöglichen Sie uns, neue Funktionen in verschiedenen Browsern bereits zu nutzen, auch wenn noch keine Einigkeit über Implementierung und Ausgabe besteht.
Ich höre jetzt schon die CSS3-Verweigerer, die genau diese Veränderungen als Bestätigung sehen, dass es sich lohnt, auf neue Funktionen zu warten, bis sie zum Standard geworden sind (oder vor allem der IE das auch kann). Ich nehme das aber gerne in Kauf, da ich mich lieber auf die Vorteile konzentriere, die mir (und meinen Kunden) neue Technologien in modernen Browsern bringen.
Während Villarriba schon CSS-Verläufe feiert, schrubbt Villabajo noch den IE 6 ;-)