今天的less学习心得

官方网站:http://www.lesscss.net/#-pattern-matching-and-guard-expressions css

检查编译本身的less代码网站:http://less.cnodejs.net/# node

先贴段代码,等会儿在总结 git

@color:#f00;

body{
    #nev{
        background-color:@color*2;
    }
    a{
        font-size:12px;
        &:hover{
            font-size:14px;
        };
    }
    .h6(){
        border-radius:#fff;
    }
   pre{.h6()} 
}
//编译后的代码
body #nev {
  background-color: #ff0000;
}
body a {
  font-size: 12px;
}
body a:hover {
  font-size: 14px;
}
body pre {
  border-radius: #fff;
}

其实less很简单,不须要解释,看代码就能懂了,只有那么几个功能,并且还和其它的语言有相同的地方。 github

一、局部变量

@color:#443311;
#header{
   color:@color;
}
//编译后的css
#header {
  color: #443311;
}

二、混合(我的理解为局部变量传参也以为能够叫作方法定义

.class(@radiu){
  border-radiu:@radiu;
}
pre{
  .class(5px);
}
//编译后的代码
pre {
  border-radiu: 5px;
}

三、嵌套

body{
    h3{
        color:#4400dd;
    }
    p{
        font-size:12px;
        
        .text{
            color:#555;
        }
    }
}
//编译后的代码
body h3 {
  color: #4400dd;
}
body p {
  font-size: 12px;
}
body p .text {
  color: #555;
}

四、函数与操做符

@color:#33ff00;
#headr{
  color:@color *3;
}
//编译后的代码
#headr {
  color: #99ff00;
}

五、函数重载(为我的的理解)——Pattern-matching and Guard expressions

.mixin(red,@color){
    background-color:@color;
}
.mixin(blue,@color){
    background-color:@color;
}
.class{
    .mixin(red,"#f00");
}
//编译后的代码
.class {
  background-color: "#f00";
}

六、函数

这个比较多,就贴图官方文档的API了 express

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);
screen(@color1, @color2);
overlay(@color1, @color2);
softlight(@color1, @color2);
hardlight(@color1, @color2);
difference(@color1, @color2);
exclusion(@color1, @color2);
average(@color1, @color2);
negation(@color1, @color2);

仍是贴一个使用的例子 less

.mixin(dark,@color){
    color:darken(@color,10%);
}
.header{
    .mixin(dark,#f00);
}
//编译后的代码
.header {
  color: #cc0000;
}

七、&符号(串联选择器)

a{
    font-size:14px;
    &:hover{
        font-size:12px;
    }
}
//编译后
a {
  font-size: 14px;
}
a:hover {
  font-size: 12px;
}
所谓的串联选择器,就是指把&符号里的样式,串连在父样式上,并行

九、引入

通常是在一个mian.less中引入其余的less 函数

@import "less/myless"//引入的文件为myless.less,其中能够省略后坠,固然也能够不用省略
@import "css/mycss.css"//引入外部的css文件

十、字符串插值

@url:"www.noin.cn";
background-image:url("@{url}/img/head.png");
//编译后
background-image: url("www.noin.cn/img/head.png");
很好了,今天大体的less心得就写这么多吧,明天就要用一上午的时间看完coffeescript;这个也是一个神器啊...简化js的语言,原本想要把 zonda的学习心得写下来的,可是仍是以为本身也就能写一点皮毛,仍是请你们去官网看一下吧,其实安装zonda我就装nodejs都装了2天还没装上,都以为本身好笨哦。

加油! 学习

相关文章
相关标签/搜索