3

LESS介绍

Posted by reedboat on Dec 11, 2010 in web

CSS虽然大大简化和扩展了网页的样式编写,但是CSS是个无逻辑的标记语言, 很多东西仍然难以复用,显得十分冗长。 虽说也可以用动态语言编写,但是不原生和直观,也不便于缓存。

最近看到一个工具,叫做LESS,也可以称为LESS语言,挺有意思的。官方网站 http://lesscss.org。 它为CSS引入了非常有用的几个编程特性,这几个特性十分的优雅,感觉CSS原本就该是这样的(或许以后真的会成为CSS的核心?)。

这些特性包括:

  • Variables(变量支持,实际上是常量,不能修改)
  • Mixins(类似函数,支持参数, 直接借用前面定义的样式模块)
  • Nested Rule(嵌套定义)
  • Operation(运算符,支持尺寸,颜色,变量的加减乘除)
  • Comments(支持C风格的单行注释)
  • Namespace(名称空间,用于对样式分组或者封装)
  • Scope(作用域,本地变量优先与全局变量)
  • Import(文件包含,可以导入less文件,变量可以跨文件生效)

可以看看下面的样式定义

@nice-blue: #5b83ad
@light-blue: @nice-blue + #111;
#header { color: @light-blue; }

.rounded_corners (@radius: 5px) {
    -moz-border-radius: @radius;
    -webkit-border-radius: @radius;
    border-radius: @radius;
}

#header {
    .rounded_corners;
}

#footer {
    .rounded_corners(10px);
}


#header {
    color: black;

    .navigation {
        font-size: 12px;
    }
    .logo {
        width: 300px;
        :hover { text-decoration: none }
    }
}

@base: 5%;
@filler: @base * 2;
@other: @base + @filler;
.test {
    color: #888 / 4;
    height: 100% / 2 + @filler;
}

LESS完全兼容原来的CSS语法,也就是说原有的css,直接将后缀改成LESS, 完全能够正常的工作。

使用一个LESS编译器lessc,即可将LESS语言编译成CSS。目前的lessc编译器有官方的版本,是用ruby写的。还有用php实现的版本(http://leafo.net/lessphp/#quickstart)和用js实现的版本(http://leafo.net/lessphp/#quickstart)。

用js写的版本,不用自己编译,只需要在页面引入一段js即可,非常的方便,对于使用html5的浏览器,支持客户端本地存储的话,那么完全不用担心效率问题。

一般来说可以使用php版本或者ruby版本,在服务器端编译好。这个工作完全可以交给程序,来自动化处理。

Tags:

Copyright © 2012 苇叶舟 All rights reserved. Theme by Laptop Geek.