关于css variable草案的一点感想

发现新的css variable草案( http://dev.w3.org/csswg/css-variables/ )真是个顺眼的提案。

一直以来,CSS老大Bert Bos的反对css variable的意见(
http://www.w3.org/People/Bos/CSS-variables
)让我觉得挺纠结的。因为虽然强调保持CSS的简单性听上去挺有道理的,但是实际上现在CSS3的发展使得CSS必然变成一个有难度的专用语言。相比较transform的矩阵变换、复杂的渐变等,变量定义的复杂性实在是不值一提啊。不过我也觉得有Sass/LESS/Stylus等方案,专门在CSS里引入变量似乎也价值不大。

现在这份提案就不同。因为它利用了cascade机制的威力,使得有了类似自定义属性的能力。而这是Sass/LESS等做不到的。它们只能做静态编译,而CSS
var则是动态的获取computed/used value。

不过现有的草案也有缺点。最大的问题是CSS的内置处理函数太弱,只有calc(),或者属性特定的复合函数比如linear-gradient之类的。这很大程度上限制了css变量的用途。比方说缺乏像darken()这样的函数。另外因为没有mixin机制,也没有条件分支,甚至也缺乏字符串处理函数或者简单的值分割函数,所以很难基于变量做到抽象复用。由此看来,css
variable要变成一个非常有价值的工具,可能仍待时日啊。

Received on Friday, 9 March 2012 12:20:23 UTC