美文网首页
Less的功能特性:入门

Less的功能特性:入门

作者: 雅雅的前端工作学习 | 来源:发表于2018-09-08 21:48 被阅读0次

    css代码中,往往同一个值会被重复用到,而这个值需要修改时又得一个个找到再逐一修改,这样是代码维护的难度增大。而Less可以将这个值写作一个变量,当这个值需要修改时,直接修改这个变量的值就可以了(这里的变量是唯一的,只能定义一次,不可以重复使用)

     /* Less */
          @color: #999;
          @bgColor: skyblue;//不要添加引号
          @width: 50%;
          #wrap {
            color: @color;
            width: @width;
          }
        
          /* 生成后的 CSS */
          #wrap {
            color: #999;
            width: 50%;
          }
    

    以@开头定义变量,并且使用时直接键入@名称。
    上面说的是值变量,下面我们来说一说选择器变量: 让选择器变成动态:

    /* Less */
          @mySelector: #wrap;
          @Wrap: wrap;
          @{mySelector}{ //变量名 必须使用大括号包裹
            color: #999;
            width: 50%;
          }
          .@{Wrap}{
            color:#ccc;
          }
          #@{Wrap}{
            color:#666;
          }
        
          /* 生成的 CSS */
          #wrap{
            color: #999;
            width: 50%;
          }
          .wrap{
            color:#ccc;
          }
          #wrap{
            color:#666;
          }
    

    3.属性变量:可以减少代码书写量

     /* Less */
          @borderStyle: border-style;
          @Soild:solid;
          #wrap{
            @{borderStyle}: @Soild;//变量名 必须使用大括号包裹
          }
        
          /* 生成的 CSS */
          #wrap{
            border-style:solid;
          }
    

    url 变量

    项目结构改变时,修改其变量即可。

      /* Less */
      @images: "../img";//需要加引号
      body {
        background: url("@{images}/dog.png");//变量名 必须使用大括号包裹
      }
    
      /* 生成的 CSS */
      body {
        background: url("../img/dog.png");
      }
    

    声明变量

    有点类似于 下面的 混合方法

      - 结构: @name: { 属性: 值 ;};
      - 使用:@name();
      /* Less */
      @background: {background:red;};
      #main{
          @background();
      }
      @Rules:{
          width: 200px;
          height: 200px;
          border: solid 1px red;
      };
      #con{
        @Rules();
      }
    
      /* 生成的 CSS */
      #main{
        background:red;
      }
      #con{
        width: 200px;
        height: 200px;
        border: solid 1px red;
      }
    

    变量运算

    不得不提的是,Less 的变量运算完全超出我的期望,十分强大。

    • 加减法时 以第一个数据的单位为基准

    • 乘除法时 注意单位一定要统一
      /* Less */
      @width:300px;
      @color:#222;

      wrap{

      width:@width-20;
      height:@width-20*5;
      margin:(@width-20)*5;
      color:@color*2;
      background-color:@color + #111;
      

      }

      /* 生成的 CSS */

      wrap{

      width:280px;
      height:200px;
      margin:1400px;
      color:#444;
      background-color:#333;
      

      }

    变量作用域

    一句话理解就是:就近原则,不要跟我提闭包。

    借助官网的Demo

      /* Less */
      @var: @a;
      @a: 100%;
      #wrap {
        width: @var;
        @a: 9%;
      }
    
      /* 生成的 CSS */
      #wrap {
        width: 9%;
      }
    

    用变量去定义变量

      /* Less */
      @fnord:  "I am fnord.";
      @var:    "fnord";
      #wrap::after{
        content: @@var; //将@var替换为其值 content:@fnord;
      }
      /* 生成的 CSS */
      #wrap::after{
        content: "I am fnord.";
      }
    

    相关文章

      网友评论

          本文标题:Less的功能特性:入门

          本文链接:https://www.haomeiwen.com/subject/wzxlgftx.html