(1)定义宏
.mixin(){
color:red;
width:200px;
}
.header{
font-size:18px;
.mixin1();
}
//定义混合时候不加小括号,使用也不用加。不加小括号会编译到css
(2)可以定义形参
.mixin(@w,@h,@color){
width:@w;
height:@h;
color:@color;
}
box1{
.mixin(200px;200px;red)
}
box2{
.mixin(200px;200px;#fff)
}
(3)设置命名参数,可设默认值,传参顺序随意
.mixin(@w:400px,@h:200px,@color:pink){//定义默认值
width:@w;
height:@h;
color:@color;
}
box1{
.mixin(@h:200px;@color:red)
}
box2{
.mixin(@color:#fff,@h:200px;@w:200px;)
}
(4)可以通过@arguments获取所有的实参
(5)混合的匹配模式(类似switch...case)
//由两个部分组成:必须部分+选择部分
//参数为_@时候,这个为必须部分
.mixin(_@){
width:200px;
height:220px;
}
.mixin(color1){//选择部分
width:10px;
height:20px;
color:pink;
}
.mixin(color2){//选择部分
width:10px;
height:20px;
color:blue;
}
//使用
.box{
.mixin(color2)//匹配
}
(6)混合的守卫
使用when语法,配合判断条件使用(>=<<=>=),条件为true样式起效。也可以使用逻辑运算符
.box(@num) when(@num>=100){//当传入的参数大于等于100该样式生效
width:200px;
}
.box(@num) when(@num<100){//当传入的参数小于100该样式生效
width:500px;
}
.box(@num) when(@num<100),(@num=100){//当传入的参数小于100或者等于100该样式生效
width:500px;
}
.box(@num) when(@num>100)and(@num<200){//当传入的参数大于100且小于200该样式生效
width:500px;
}
.box(@num) when not(@num<200){//当传入的参数不小于200该样式生效
width:500px;
}
less也可以实现模块化
比如变量模块,混合模块等,使用@import语法导入