less混合,匹配与守卫

(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语法导入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值