less

我们在项目中使用less时,可以分开创建各个类型,创建一个专门保存变量的less 文件,一个混入方法的文件等,有利于以后的维护

声明编码类型防止乱码

@charset "utf-8";    

变量

/*必须@前缀,;结尾,:为等于。变量名不能以数字开头,不能包含特殊字符,区分大小写 */
@textColor:#333;
a{
    color: @textColor;
}
/* 也可以用来声明一个类名,但变量与其他字符拼接时,要加{}来表明哪个是变量 */
@className:box;
.@{className}{
    color:@textColor;
}

mixin混入

/* 类混合,这种方式类也会被编译进css中,但是我们不会使用,所以使用函数的形式 */
.h50{
    height: 50%;
}
.f_r{
    float: right;
}
.h50-f_r{
    .h50;
    .f_r;
}
/* 定义函数,函数不会被编译进css中 */
.w50(){
    width: 50%;
}
/* 传参的函数,如果没有默认值,使用时必须要传参;不传参时不写括号
    默认值写法与变量写法相同 */

.f(@direction:left){
    float: @direction;
}
.w50-f{
    .w50;
    .f(right);
}

嵌套

.header{
    display: block;
    img{
        display: none;
    }
    /* 需要连接时使用:& */
    &:hover{
        img{
            display: block;
        }
    }
}
/* 会解析为以下形式*/
   .header{
       display:block
    }
   .header img{
       display:none
    }
   .header:hover img{
       display:block
    } 

使用@import 导入文件

@import "./main.less";
a{
  background: @bgc;
}

转义:~"",放在此引号中的任何东西都会被转义,原样输出

@minw: ~"(min-width:768px)";
.box{
    @media @minw{
        width: 400px;
    }
}

并且指令会冒泡,为以下形式

@media (min-width:768px) {
  .box {
    width: 400px;
  }
} 

命名空间

#group1(){
    .btn{
        -webkit-appearance: none;
        width: 40px;
        background-color: #ccc;
        border: 1px solid #fff;
    }
}
/* 使用时 */
.box button{
    #group1 >.btn
}

循环
mixin可以调用本身,结合Guard和模式匹配,可以创建各种循环/迭代的结构。
下面是官网给的例子,when是当条件满足时执行函数

.loop(@counter) when (@counter > 0) {
  .loop((@counter - 1));    // next iteration
  width: (10px * @counter); // code for each iteration
}

div {
  .loop(5); // launch the loop
}

在做移动端rem适配时使用了此方法,便于维护,并且用到了几个内置函数
less的变量可以定义数组:@deviceList:750px,640px,340px;
拿数组的长度length():@len:length(@deviceList)
拿数组中的数据extract()

@index:1;
extract(@deviceList,@index)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值