LESS与SASS

LESS和Sass在语法上有些共性,好比下面这些:服务器

  • 混入(Mixins)——class中的class;
  • 参数混入——能够传递参数的class,就像函数同样;
  • 嵌套规则——Class中嵌套class,从而减小重复的代码;
  • 运算——CSS中用上数学;
  • 颜色功能——能够编辑颜色;
  • 名字空间(namespace)——分组样式,从而能够被调用;
  • 做用域——局部修改样式;
  • JavaScript 赋值——在CSS中使用JavaScript表达式赋值。

LESS和Sass的主要不一样就是他们的实现方式,LESS是基于JavaScript,因此,是在客户端处理的。函数

另外一方面,Sass是基于Ruby的,而后是在服务器端处理的。oop

 

变量spa

LESS 文件   code

@border-color : #b5bcc7;           
   .mythemes tableBorder{
  border : 1px solid @border-color; 
}

 

SASS 文件blog

$border-color : #1875e7;
div {
  color : $blue;
}

 

关于变量在LESS和SASS中的区别就是,LESS用@,SASS用$。继承

 

混入参数
LESS 文件

   
ip

 .layout(@w,@h,@b,@bgc){
width: @w;
height: @h;
border: @b;
background-color: @bgc;
}
header{
  .layout(1900px,150px,1px solid black,black);
}

 

SASS 文件作用域

@mixin layout($w,$h,$b,$bgc){
    width:$w;
    height:$h;
    border:$b;
    background-color:$bgc;
}
header{
    @include layout(1900px,150px,1px solid black,black)       
}

 

@mixin的强大之处,在于能够指定参数和缺省值。数学

 

@mixin left($value: 10px) {
         float: left;
         margin-right: $value;
      }

使用的时候,根据须要加入参数:     

div {
         @include left(20px);
       }

 

 

 

继承

SASS容许一个选择器,继承另外一个选择器。好比,现有class1:

.class1 {
    border: 1px solid #ddd;
  }
//class2要继承class1,就要使用@extend命令:
.class2 {
    @extend .class1;
    font-size:120%;
  }

 

运算

SASS在数字上比LESS更专业。它已经能够换算单位了。SASS能够处理没法识别的度量单位并将其输出。

/* SASS */ 
2in + 3cm + 2pc = 3.514in
 /* LESS */ 
2in + 3cm + 2pc = Error

条件语句与控制

LESS不支持该功能。使用 Sass,你能够使用if { } else { } 条件语句,以及for { }循环。它甚至支持 and、 or和 not,以及 <、 >、 <=、 >= 和 == 等操做符。

/* Sample Sass "if" statement */
@if lightness($color) &gt; 30% {
    background-color: #000;
} @else {
    background-color: #fff;
}
 
/* Sample Sass "for" loop */
@for $i from 1px to 10px {
    .border-#{i} {
    border: $i solid blue;
    }
}
相关文章
相关标签/搜索