CSS der Zukunft
Im Laufe der letzten Woche hat Apple gleich eine ganze Reihe an Vorschlägen für zukünftige CSS Funktionen veröffentlicht:
CSS Animation
Wie der Name schon sagt — mit CSS Animation soll ermöglicht werden das Elemente ohne Mithilfe von JavaScript mit Animationen, genauer gesagt mit fließenden Bewegungen innerhalb des Viewports, versehen werden können. Auch der zeitliche Rahmen dieser Bewegungen soll festgelegt werden können.
CSS Transitions
Passend zu den Animationen soll der Übergang zwischen zwei Angaben, beispielsweise einer Hintergrundfarbe, durch CSS Transitions ebenfalls fließen gestaltet werden können.
CSS Transforms
CSS Transforms ist ein Model für die zwei- oder sogar dreidimensionale Ausrichtung und Neigung von Elementen anhand eines Koordinatensystems durch die Eigenschaft
transform
.CSS Variables
Das Nutzen von Variablen innerhalb von CSS ist eine sehr diskussionswürdige Angelegenheit. Daniel Glazman und David Hyatt beschreiben in CSS Variables eine Möglichkeit der Umsetzung.
Unsinn oder ein Schritt nach vorne?
Ich persönlich bin hin- und hergerissen. Einerseits würde ich mich freuen wenn einige Techniken die bisher kompliziert via JavaScript bzw. jQuery & Co erzeugt werden einfach in der CSS genutzt werden könnten. Andererseits ist CSS eine deklarative Stylesheet-Sprache und sollte dies auch bleiben. Eine eierlegende Wollmilchsau à la PDF schafft nur Probleme.
1 Kommentare
Sam
schrieb am 8.12.08 um 14:10 Uhr:
Wenn man schon mal irgendwelchen grafischen Kram programmiert hat (z.B. mit OpenGL), dann ist sowas wie "transform" nicht weit hergeholt, da auch die Render Engines der Browser auf so ähnliche Funktionen der Grafik API mit "Volumenkoordinaten" zugreifen könnten. Neigungen von z.B: einem Div Container sind meiner Meinung nach eher mit "rotate" (Drehen um beliebige Achsen des Objektes) als transform (Verzerrungen, Stauchungen etc.) zu benennen, da man sich ja im Raum befinden soll, und nicht mehr auf einer Fläche, wo "transform" für solche (Pseudo 3D-) Effekte eher zutrifft.
Meiner Meinung nach sollten die Entwickler aber wirklich mal auf eine Option "Zeichne mit OpenGL" setzen (nicht 2nd life zeugs mit dem Cube Browser Dings da), sondern im Viewport des normalen Browsers).
Mit OpenGL hat man kompromisslose Erweiterungsmöglichkeiten, wie Full Screen Anti Aliasing (FSAA) laden, man hat z.B. anständig beschleunigte :hover (Bei OpenGL mit dem SelectBuffer), transparenz, etc...
Es wäre auch einfach, Objekte zu "beschneiden"; "abgerundete Ecken" etc...
Ein Problem gibts zwar bei OpenGL: Das Font Rendering, vorallem TrueType/AA etc... aber das wär für alle OpenGL Anwendungen mal ein Schritt vorwärts, wenn da ein kompromissloser Font Loader/Renderer für OpenGL mit offenem Quellcode entstehen würde.
Ein weiters Problem sind natürlich diverse Plugins, Flash etc. Respektive Video (overlay usw.)... aber es gibt ja pixelbuffer und weiter fehlen natürlich die ganzen Oberflächen- spezifischen Dinge vom betriebssystem, wie z.B. Scrollbars, Eingabefelder etc... aber was solls, da könnte man wirklich mal was anständiges designen... jedes Formularfeld, bzw. Scrollbar sollte einfach mindest- Dimensionen besitzen.
Jedenfalls sollten sich die Entwickler über eine Sache einig sein: Entweder gehen wir jetzt in den Raum, oder lassens bei 2D (Auch im Raum kann man ortographische Projektionen; sprich "flach und schichtenweise, ohne Verkleinerung bei Distanz" im Sichtvolumen zeichnen.
Früher oder später geht der 3D hype eh aus der Startbox, ich hoff einfach, ohne irgendwelche trägen Symbiosen...