LESS简介
less就是可编程化的CSS。简单给个例子:
详细请参考:http://www.lesscss.net/
基于nodejs的csstoless
最开始打算使用github上一个用rb写的css2less。但是输出的结果完全乱套了,所以还是决定自己重写。
基本思路
css文件 –解析成–> JSON对象 –生成–> less文件
JSON对象大概是这样子的:
使用
问题
这样做的目的就是为了避免生成空表达式的css。会在之后的less注意事项里详细讲解。
less的书写规范
依照之前的CSS规范来说,就应该是这样:
意见??? => 采用LESS官方写法,也就是上面的那种写法。
less的注意事项
直接转到:用LESS需要注意的几点
开发环境中针对LESS解析成CSS的方案
方案一:更改对应的virtualHost配置(临时方案)
找到对应的配置文件,在下面加上下面这句话:
具体可以参考我的virtualHost配置(/etc/httpd/vm/00ysmt)以及我的重定向文件处理(/home/yansong/mt/webroot/static404.php)。
最后,如果配置virtualHost,需要找SA帮忙重启apache服务器。因为我们没有权限。;)
方案二:配置.vimrc文件(放弃)
我们现在都是基于vim开发,所以提供一个非常方便vim的解决办法,避免去配置virtualHost文件以及写对应的中转文件。
只需要在~/.vimrc最后面加上下面这句话:
- 方案是好,但是漏洞太大*,比如,我修改了common/base.less但是我需要更新的是base.less
方案三:理解解决方案,改动大
-
首先针对之前开发环境下的服务器做好相关配置,默认请求的CSS都转向一个处理文件,每次请求都进行一次LESS解析(当然,如果有必要的话可以加缓存,但是毕竟是开发环境,使用的人不多,压力不大)。
-
我们使用的是git管理我们的代码,这样的话,我们通过在.gitignore文件加入:*.css => 即忽略掉所有的css文件。这样做的目的避免用户操作处理CSS文件。
-
在我们的发布脚本里加上LESS解析处理所有有改动的less文件(最好的做法就是根据一定规则编译所有不是通用的LESS文件),这样做的目的就是让线上的服务器是直接请求对应的css文件。
当然这块也想过不去解析LESS文件,但是毕竟你要用CDN嘛。;)
商家后台推行LESS方案
拆分
商家后台目前只引用一个base.css文件,现在分别拆分成4个文件:
他们对应的关系如下:
最开始的想法是引用两个CSS文件,第一个是common/base.less,第二个是base.less
有没有更好的拆分建议? => 暂定这种拆分方式。