LESS和Sass在语法上有些共性,好比下面这些:服务器
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) > 30% { background-color: #000; } @else { background-color: #fff; } /* Sample Sass "for" loop */ @for $i from 1px to 10px { .border-#{i} { border: $i solid blue; } }