前端必备-less,深入浅出五分钟熟练运用!

  @charset 'utf-8';

 //一、注释
  /*我可以被转译*/
  //我不可以被转移


 //二、变量
  //@声明变量 @自定的name:值
  @color_01: #eee;


 //三、混合
  //1. 混合
  .time{
    color: red;
  }
  .odiv{
    width: 100px;
    height: 100px;
    background: @color_01;
    .time;
  }
  //2. 混合传参 类似于js中的函数
  .function( @ev_width, @ev_height, @ev_background){
    width: @ev_width;
    height: @ev_height;
    background: @ev_background;
  }
  .box{
    .function( 100px, 100px, red); //调用时传入实参即可
  }
  //3.混合传参-默认值
  .function( @ev_width: 100px, @ev_height: 100px, @ev_background: red){
    width: @ev_width;
    height: @ev_height;
    background: @ev_background;
  }
  .box{
    .function(); //如果有值读取实参,如果没有走默认值
  }


 //四、匹配
  //1.所谓匹配,类名一样都是trianglefun,判断参数第一位
  //比如说我现在想写一个三角,原声css肯定是这么写
  .triangle{
    width: 0px;
    height: 0px;
    border-width: 10px;
    overflow: hidden;
    border-color: red transparent transparent transparent;
    border-style: solid dashed dashed dashed;
  }
  //但是我想让他换个方向呢,就比较麻烦了,所以我们把它封装起来
  //分别为四个方向
  .trianglefun( top, @color){
    border-color: @color transparent transparent transparent;
    border-style: solid dashed dashed dashed;
  }
  .trianglefun( right, @color){
    border-color: transparent @color transparent transparent;
    border-style: dashed solid dashed dashed;
  }
  .trianglefun( bottom, @color){
    border-color: transparent transparent @color transparent;
    border-style: dashed dashed solid dashed;
  }
  .trianglefun( left, @color){
    border-color: transparent transparent transparent @color;
    border-style: dashed dashed dashed solid;
  }
  //现在我们已经风装起来了,但是其他的熟悉我们每次都还有写,能不能也封装起来啊
  .triangle{
    width: 0px;
    height: 0px;
    border-width: 10px;
    overflow: hidden;
    .trianglefun( left, #eee);
  }
  //less 给我们提供了一个方法 @_ ,@_方法的意思是不管匹配到那个都会执行@_方法内的代码(即使没有匹配到任何一个,但是只要执行力这个方法,那么就会调用这个函数) , 但是需要注意后面必须也要加上之前定义的其他参数
  .trianglefun( @_, @color){
    width: 0px;
    height: 0px;
    border-width: 10px;
    overflow: hidden;
  }
  //此时我们在调用的话,是不是简洁了很多
  .triangle{
    .trianglefun( left, #eee);
  }


 //五、运算
  //1. + - * /
  @w: 200px;
  .item{
    width: @w - 20;
    color: #999 - 10;
  }


 //六、嵌套
  //1.嵌套
  //我们写了div,div下面是a链接,a链接下面是span标签,三层
  //<div><a href=""><span></span></a></div>
  //我们首先用原声的写法
  div{
     xxx;
  }
  div a{
     xxx;
  }
  div a span{
     xxx;
  }
  //但是在less里面又一个更简洁更清晰的写法
  div{
     xxx;
    a{
        xxx;
      span{
           xxx;
        }
     }
  }
  //2.&当前作用域,也就是他的父及
  //比如说我们之前想给一个div加hove效果,我们肯是这么加
  a{
    color: red;
  }
  a:hover{
    color: blue;
  }
  //我们来看一下less中的写法
  a{
    color: red;
    &:hover{ //此时的 & 就是 a
      color: blue;
     }
  }


 //七、@arguments方法
  //1. @arguments 全部参数的集合
  .border( @w: 1px, @color: #eee, @type: solid){
    border: @arguments;
  }
  .bor{
    width: 100px;
    height: 100px;
    .border();
  }


 //八、 避免编译
  //1.~''
  div{
    width:~ 'calc(100% - 10px)';
  }


 //九、 !important
  div{
    width: 10px !important;
    .trianglefun( left, #eee) !important;
  }
     //ps: 怎样 你学会了吗 !!!

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值