Less

@baseColor: red;

@switch: light; //dark





// according the first param to call class. 

.mixin (dark, @color) {

    color: darken(@color, 10%);

}



.mixin (light, @color) {

    color: @color;

}



.mixin (@_, @color) {

    display: block;

}

//end







//Guards begin

// can used  > >= = =< < ,  if @a is ture ,then  use --> .guards (@a) when (@a){} or .guards (@a) when (@a=true){} 

.guards (@a) when (lightness(@a) >= 50%) {

    background: gray;

}



.guards (@a) when (lightness(@a) < 50%) {

    background: blue;

}



//or

.mixin (@a) when (@a > 10), (@a < -10) { }



//and

.mixin (@a) when (@a > 10) and (@a < -10) { }



//compare

.max (@a, @b) when (@a > @b) { width: @a }

.max (@a, @b) when (@a < @b) { width: @b }



//value type

//can used function 

//iscolor

//isnumber

//isstring

//iskeyword

//isurl

.mixin (@a, @b: 0) when (isnumber(@b)) {  }

.mixin (@a, @b: black) when (iscolor(@b)) {  }



//not

.mixin (@b) when not (@b > 0) {  }



//Guards end





// @arguments 

.radius(@x: 0,@y: 0,@blur: 2px,@color: red) {

    -webkit-box-shadow: @arguments;

    box-shadow: @arguments;

}

//end



//nest 嵌套

body    { color:red;

    

          // The element  id equals b in body

    #b  {color:green;}



    #a  {   font-size:12px;



    &:hover{ font-size:15px}

    }

    

    }





//嵌套 Media Queries

.one{



    @media (width:400px){



        font-size:1.3em;

        

         @media print {

            color:red;

            }

        }

    }



/* then will output :



    @media (width: 400px) {

        .one {

            font-size: 1.2em;

        }

    }



    @media (width: 400px) and print and color {

        .one {

            color: blue;

        }

    }

    */

//end





//& 的高级用法



//1

.a,.b{

    .c &{

        color:white;

    }

      & + &{

        color:white;

    }

}

/*

    then output:

    .c .a,.c .b{

     color:white

    }





    .a + .a ,

    .a + .b ,

    .b + .b ,

     .b + .a{

        color:white;

    }



*/





//运算

//@width: (1px +5);

//@newWidth:(( @width +6 ) * 2 );



//命名空间



//定义

#bundle {

    .button () {

    display: block;

    border: 1px solid black;

    background-color: grey;

    &:hover { background-color: white }

    }

    .tab {  }

    .citation {  }

    }

//调用

#aa{

    #bundle >.button;

}



//namespace end



//作用域

//LESS 中的作用域跟其他编程语言非常类似,首先会从本地查找变量或者混合模块,如果没找到的话会去父级作用域中查找,直到找到为止



@var: red;



    #page {

        @var: white;

        #header {

            color: @var; // white

        }

    }



    #footer {

        color: @var; // red

    }



    // scope end







///////////////字符串插值//////////////////

@base-url: "http://www.baidu.com";

    #aaa{

        background-image: url("@{base-url}/images/bg.png");

    }

///////////////字符串插值结束//////////////////







/////////// 常用函数///////////////////////////

/*



escape(@string);                             // 通过 URL-encoding 编码字符串



unit(@dimension, [@unit: ""]);               // 移除或替换属性值的单位

color(@string);                              // 将字符串解析为颜色值



ceil(@number);                               // 向上取整

floor(@number);                              // 向下取整

percentage(@number);                         // 将浮点数转换为百分比,例如 0.5 -> 50%

round(number, [places: 0]);                  // 四舍五入取整



rgb(@r, @g, @b);                             // 转换为颜色值

rgba(@r, @g, @b, @a);                        // 转换为颜色值

argb(@color);                                // 创建 #AARRGGBB 格式的颜色值

hsl(@hue, @saturation, @lightness);          // 创建颜色值

hsla(@hue, @saturation, @lightness, @alpha); // 创建颜色值

hsv(@hue, @saturation, @value);              // 创建颜色值

hsva(@hue, @saturation, @value, @alpha);     // 创建颜色值



hue(@color);                                 // 从颜色值中提取 `hue` 值

saturation(@color);                          // 从颜色值中提取 `saturation` 值

lightness(@color);                           // 从颜色值中提取 'lightness' 值

red(@color);                                 // 从颜色值中提取 'red' 值

green(@color);                               // 从颜色值中提取 'green' 值

blue(@color);                                // 从颜色值中提取 'blue' 值

alpha(@color);                               // 从颜色值中提取 'alpha' 值

luma(@color);                                // 从颜色值中提取 'luma' 值



saturate(@color, 10%);                       // 饱和度增加 10%

desaturate(@color, 10%);                     // 饱和度降低 10%

lighten(@color, 10%);                        // 亮度增加 10%

darken(@color, 10%);                         // 亮度降低 10%

fadein(@color, 10%);                         // 透明度增加 10%

fadeout(@color, 10%);                        // 透明度降低 10%

fade(@color, 50%);                           // 设定透明度为 50%

spin(@color, 10);                            // 色相值增加 10

mix(@color1, @color2, [@weight: 50%]);       // 混合两种颜色

greyscale(@color);                           // 完全移除饱和度,输出灰色

contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]); 

                                             // 如果 @color1 的 luma 值 > 43% 输出 @darkcolor

                                             // 否则输出 @lightcolor



multiply(@color1, @color2);                 //分别将两种颜色的红绿蓝 (RGB) 三种值做乘法运算,然后再除以 255,输出结果是更深的颜色

screen(@color1, @color2);                   //与 multiply() 函数效果相反,输出结果是更亮的颜色。

overlay(@color1, @color2);                  //结合 multiply() 与 screen() 两个函数的效果,令浅的颜色变得更浅,深的颜色变得更深。注意:输出结果由第一个颜色参数决定。

softlight(@color1, @color2);                //与 overlay() 函数效果相似,只是当纯黑色或纯白色作为参数时输出结果不会是纯黑色或纯白色。

hardlight(@color1, @color2);                //与 overlay() 函数效果相似,不过由第二个颜色参数决定输出颜色的亮度或黑度,而不是第一个颜色参数决定。

difference(@color1, @color2);               //从第一个颜色值中减去第二个(分别计算 RGB 三种颜色值),输出结果是更深的颜色。

exclusion(@color1, @color2);                //效果与 difference() 函数效果相似,只是输出结果差别更小 (lower contrast)。

average(@color1, @color2);                  //分别对 RGB 的三种颜色值取平均值,然后输出结果。

negation(@color1, @color2);                 //与 difference() 函数效果相反,输出结果是更亮的颜色。请注意:效果相反不代表做加法运算。

    

    

    */

















#a {

    height: 100px;

    width: 100px;

    .radius(3px,3px);

    .mixin(@switch,red);

    .guards(#999);

}

 

你可能感兴趣的:(less)