CSS 预处理器 Less
安装 编译
koala是现在市面上,最好用的 CSS预处理语言 图形编译工具,可以编译多种 CSS预处理语言,例如: less、sass、compass
- 支持中文
- 有图形界面
- 可以很方便地修改输出路径
- 修改压缩方式方便
- 可以设置编译选项
- sourcemap 生成源文件映射
- line Comments 行注释
- debug Info 调试信息
- strict Math 严格运算模式,数学运算必须加上()
- strict Units 严格单位模式
- autoprefix 自动添加前缀
- 其他使用方法,参见官网
基本语法
变量
@变量名: 变量值;
1 | @w: 100px; /* 属性值 */ |
混合
1 | /* 无参混合 */ |
深入混合
相同的自定义函数不会被替换
1
2
3
4
5
6
7
8
9
10.box {
width: 100px;
}
.box {
height: 200px;
}
.content {
.box();
}1
2
3
4.content {
width: 100px;
height: 200px;
}混合匹配
1
2
3
4
5
6
7
8
9
10
11
12
13.border(l) {
border-left: 10px solid red;
}
.border(r) {
border-right: 10px solid red;
}
.border(@_) {
/* @_ 表示允许匹配任意值 */
}
.box {
.border(r);
}需要匹配的内容放在所有参数最前面
不一样的参数会匹配出不一样的结果,上述案例,匹配的为参数 r1
2
3.box {
border-right: 10px solid red;
}利用混合特性,达到返回值效果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17.box {
@w: 100px;
@h: 200px;
}
.content {
.box();
width: @w;
height: @h;
}
.average(@w, @h) {
@average: (@w + @h) / 2;
}
.container {
.average(10px, 20px);
padding: @average;
}条件混合
1
2
3
4
5
6
7
8
9.average(@w, @h) when not (@w = 100) {
width: @w;
height: @h;
}
/* 当条件不满足时,执行 default 情况 */
.average(@w, @h) when (default()) {
width: 0;
height: 0;
}
嵌套
1 | .box { |
嵌套冒泡
在页面的任何位置,都可以放心的写一些指令,例如@font-face
1 | div { |
这里的@font-face
最终解析的时候,不会被设置到div内,而是会分离出来。对于样式多的时候,很棒~ 我们不用特意去找最外层写
1 | div { |
运算
1 | @color: #006622; |
- 运算符的左右,都保留空格
- 运算的时候,最好包裹在
()
内 - 当运算数值具有单位时,需要注意
一个单位
最终结果根据唯一的这个单位两个单位
看运算符,* 为最后一个单位,+ - / 为第一个单位
转义
1 | .box { |
继承
1 | .box { |
1 | .box, |
判断
我可不是你想调用就能调用的混合,有些时候,我也是有条件的,通过when关键词,可以为设定条件调用
1 | .box(@w) when (@w > 0) { |
当 when 后面 () 的结果为真,则添加后续样式,否则不执行
比较运算符
>、<、>=、<=、=
逻辑运算符
and
可以连接两个条件,并且两个条件都需要满足,才可以添加后续样式1
2
3
4.box(@w, @h) when (@w > 0) and ((@h > 0)) {
width: @w;
height: @h;
},
任何一个结果符合条件,就执行后面的代码(或)1
2
3
4.box(@w, @h) when (@w > 0) , ((@h > 0)) {
width: @w;
height: @h;
}not
判断条件不成立,就可以1
2
3.box(@h) when not (@h = 100) {
height: @h;
}
类型检查功能
iscolor
isnumber
isstring
ispixel
ispercentage
isem
循环
1 | .width(@num) when (@num > 0) { |
1 | div { |
属性合并
1 | .box() { |
1 | .content { |
注释
1 | // 行注释 |
导入
1 | @import 'less/variable.less'; |
编码
1 | @charset "utf-8"; |
函数
- lighten() 增加颜色亮度
- darken() 减少颜色亮度
- fade() 给颜色设定透明度
- mix() 根据比例混合两种颜色
- saturate() 饱和度
- 更多
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 寻梦环游记!