初学less


(0).前言

  0.安装:npm install -g less

  1.kaola编译less

(1)具体写法与使用

  1.注释

    //包裹的注释不会被编译到css文件中

    /**/包裹的注释会被编译到css文件中

  2.变量:可以使用@去定义变量

    属性值:@color:pink     ---->    backgraund-color:@color    //复用

    属性名:@m:margin    ---->      @{m} :0

    选择器:@selector:input   ----->   @{selector}{ ... }      //后两种不提倡

    变量的延迟加载:会等某个作用的所有变量都声明完成后才会去赋值。

  3.嵌套规则

    普通嵌套:写在内部即可

    hover等嵌套:需要在写:hover前加一个&

  4.混合

    普通混合:当两个选择器(b,c)内容相同时,可以将混合器内容单独拎出去,定义在一个选择器a中,在原本需要写内容的地方引入该选择器即可,示例简略版如下

      .a{ .. .}      b{.a}   c{.a}  【这样转化时a也会被当做选择器转化为css】

    不带输出的混合:.a{ .. .}         ===>     .a(){ .. .} 即可      b{.a} ===>  b{.a()}

    带参数的混合:.a(@args...){ .. .}

    带默认值的混合:.a(@args:【值】,@name:【值】 ...){ .. .}

    指定传参对象的混合:  b{.a(@name:123px)}     可以指定压迫传给谁

    匹配模式:当定义的选择器a要被书写多次(功能大致相同,代码结构不同,例如调整margin的四个值,就需要写四个相同的a来应对不同方向的需求)

         此时可以将多个a中的内容相同的内容提取出来,当做这些选择器的共同,且在调用时不用调用共同部分。

      写法:.a(@_){【公共部分】}   .a(@args...){ ..【非公共部分】 .}

    arguments:可以对实参进行接收,用的不多

      写法:  .border(1px,solid,black)         .border(@1,@2,@3){  border: @arguments;}

  5.计算

    可以用()包裹要计算的对象,但要求计算的对象的一方携带单位

  6.继承

    .a{ .. .}     .b{ &:extend(.a all)}        //all的意思是,所有的a都会被继承,包括a:hover等

  7.避免编译

    对不需要编译的内容  ~"【不需要编译的内容】"

相关