less/sass/stylus俨然已经成为现在最常用的3种动态CSS语言,从这篇文章开始,我将详细的介绍stylus
stylus简介
stylus借鉴了sass的一些思想,变量/混合/函数/继承/扩展/插值等等特性在stylus里都有,但是在写法上,stylus追求极致的简单,花括号/冒号/分号以及一些逗号统统都可以省略,变量也不需要像less一样以@开头,或者向sass一样以$开头,看起来就像普通的字符串一样,甚至于调用混合时的参数的小括号也可以省略。这样的特性之下,使得stylus的结构看起来更加清晰。
border-radius()
-webkit-border-radius arguments
-moz-border-radius arguments
border-radius arguments
body
font 12px Helvetica, Arial, sans-serif
a.button
border-radius 5px
//编译后:
border-radius() {
-webkit-border-radius: arguments;
-moz-border-radius: arguments;
border-radius: arguments;
}
body {
font: 12px Helvetica, Arial, sans-serif;
}
a.button {
border-radius: 5px;
}
stylus支持现代编程语言的函数
sum(nums...)
sum = 0
sum += n for n in nums
sum(1,2,3,4)
// => 10
这是什么概念?这意味着写CSS已经和真正的编程越来越接近,stylus可以变得非常强大!
字符串插值。在stylus中,字符串插值不需要特殊的写法:
fonts = helvetica, arial, sans-serif
body {
padding: 50px;
font: 14px/1.4 fonts;
}
//编译后:
body {
padding: 50px;
font: 14px/1.4 helvetica, arial, sans-serif;
}
你只需要简单的将变量放到你想放到的位置就行了。而在less和sass中,你却不得不将变量包裹在@{}或者#{}中,而且,stylus还支持更加强大的选择器插值和属性插值,有关插值的具体内容会在随后的文章中介绍。
stylus使用node编写,要使用stylus,只需要在terminal中运行:
npm install stylus