[Flex]用编程的方式来写CSS - LESS的应用(一)

我是一个Flex开发人员,因此就无法避免与HTMLJavascriptCSS打交道。

如果使用HTML Javascript的话,我一般采用JQuery的方式,毕竟对于像我这样“半吊子”的Web开发者来说,JQuery是一个非常不错的选择。
但是对于CSS来说,就不是那么方便了,只能一点一点的写CSS

无意中发现了一个比较有意思的应用:LESS

那么什么是LESS呢?
简言之:使用编程的方法是来写CSS

举例说明:
CSS方式:
#header { color: #4D926F; } 
h2 { color: #4D926F; }

LESS方式:
@brand_color: #4D926F;
#header { color: @brand_color; } 
h2 { color: @brand_color; }

是不是很简单?那么LESS如何使用和安装?

使用LESS需要有ruby的环境的支持!关于如何安装ruby,就不是本篇文章的内容了,具体大家可以G一下:)
当安装完ruby后,则需要安装lessc,地址:http://s.k-zone.cn/lessdown

编译方式: $lessc style.less style.css

LESS具有如下几种语法,我大致翻译一下,原文在:http://s.k-zone.cn/less

变量 (variables)
对不同地方同一个值进行变量描述,然后统一定义并且在需要的地方赋值。

CSS写法:
#header { color: #4D926F; } 
h2 { color: #4D926F; }

LESS写法:

@brand_color: #4D926F;
#header { color: @brand_color; } 
h2 { color: @brand_color; }

引用(mixins)
在一个类中可以引用另一个类的名称做为该类的属性。(在这点上与variables有些相似,只不过variables定义的变量,而mixins定义的属性集合)
 
CSS写法:
#header {
  -moz-border-radius: 8px;
  -webkit-border-radius: 8px;
  border-radius: 8px;
}
 
#footer {
  -moz-border-radius: 8px;
  -webkit-border-radius: 8px;
  border-radius: 8px;
}
 
LESS写法:
.rounded_corners {
  -moz-border-radius: 8px;
  -webkit-border-radius: 8px;
  border-radius: 8px;
}
 
#header {
  .rounded_corners;
}
 
#footer {
  .rounded_corners;
}

嵌套规则(nested rules)
将相同的内容放到一起,这样避免CSS块过长,不易阅读。
 
CSS写法:
#header {
  color: red;
}
 
#header a {
  font-weight: bold;
  text-decoration: none;
}
 
LESS写法:
#header {
  color: red;
  a {
    font-weight: bold;
    text-decoration: none;
  }
}

表达式(operations)
可以通过一些简单的计算来设定属性。
 
CSS写法:
#header {
  color: #333;
  border-left: 1px;
  border-right: 2px;
}
 
#footer {
  color: #222;
}
 
LESS写法:
@the-border: 1px;
@base-color: #111;
 
#header {
  color: @base-color * 3;
  border-left: @the-border;
  border-right: @the-border * 2;
}
 
#footer {
  color: @base-color + #111;
}
注释:其中@the-border和@base-color使用了变量 (variables)方式。

使用上述四种就可以大大简化你的CSS开发了。是不是很简单呢?
 
那么LESS并不是万能的,它也是具有一些缺点的,下一篇文章我将叙述一下LESS的缺点。