sass与less的区别总结

本文对比了Sass和Less这两种CSS预处理器的安装方法、变量使用、作用域、混合使用、嵌套及继承等特性。Sass基于Ruby,而Less可通过npm安装。两者在变量定义、混合使用等方面有所不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sass 与 less 的区别与学习
一、安装sass与less
sass基于Ruby语言开发而成,因此安装sass前需要安装Ruby。(注:mac下自带Ruby无需在安装Ruby!);方法如下gem install sass、 gem install compass
less 在服务器端最容易的安装方式就是通过 npm (node.js 的包管理器),方法如下:$ npm install -g less
less 在客户端使用“.less”(LESS源文件),只需要在官网载一个javascript脚本文件主“less.js”,然后在我们需要引入LESS源文件的html的中加入如下代码:

二、变量
sass 是以mainColor: #963;
less 是以@开头定义的变量,如 @mainColor: #963;
三、作用域
sass 没有全局变量,满足就近原则,但是实际中可以将需要定义的全局属性放在base.scss 文件中。注意变量名重复;
less 中的作用域和其他程序语言中的作用域非常的相同,他首先会查找局部定义的变量,如果没有找到,会像冒泡一样,一级一级往下查找,直到根为止,同样上面的例子,我们来看看他在LESS下所起的变化。

四、混合(Mixins)
Sass的混合
sass样式中声明Mixins时需要使用“@mixin”,然后后面紧跟Mixins的名,他也可以定义参数,同时可以给这个参数设置一个默认值,但参数名是使用“使Mixins使@includeMixinsSass使+Mixins+MixinsSasserrorMixinerrorborderWidth”,在没特别定义外,这个参数的默认值设置为“2px”:
/声明一个Mixin叫作“error”/
@mixin error(borderWidth:2px){  
  border:
borderWidth solid #f00;
color: #f00;
}
/调用error Mixins/
.generic-error {
@include error();/直接调用error mixins/
}
.login-error {
@include error(5px);/调用error mixins,并将参数$borderWidth的值重定义为5px/
}
less 的混合
   在LESS中,混合是指将定义好的“ClassA”中引入另一个已经定义的“Class”,就像在当前的“Class”中增加一个属性一样。
   不过LESS样式中声明Mixins和Sass声明方法不一样,他更像CSS定义样式,在LESS可以将Mixins看成是一个类选择器,当然 Mixins也可以设置参数,并给参数设置默认值。不过设置参数的变量名是使用“@”开头,同样参数和默认参数值之间需要使用冒号(:)分 隔开。
 正如Sass混合是的示例,同样在LESS样式中定义一个名叫“error”的Mixin,这个“error”设置了一个参数“@borderWidth”,在没有特别定义外,这个参数的默认值是“2px”:
/声明一个Mixin叫作“error”/
.error(@borderWidth:2px){
border:@borderWidth solid #f00;
color: #f00;
}
/调用error Mixins/
.generic-error {
.error();/直接调用error mixins/
}
.login-error {
.error(5px);/调用error mixins,并将参数@borderWidth的值重定义为5px/
}

五、嵌套
section {
margin:10px;
}
section nav {
height:25px;
}
section nav a {
color: #0982c1;
}
section nav a:hover {
text-decoration: underline;
}

==========================》
section {
margin:10px;
nav {
height:25px;
a {
color:#0982c1;
&:hover {
text-decoration:underline;
}
}
}
}

六、继承
sass的继承:@extend
.block {
margin: 10px 5px;
padding: 2px;
}
p {
@extend .block;/继承.block选择器下所有样式/
border: 1px solid #eee;
}
ul,ol {
@extend .block; /继承.block选择器下所有样式/
color: #333;
text-transform: uppercase;
}
====================================>
.block,p,ul,ol {
margin: 10px 5px;
padding:2px;
}
p {
border: 1px solid #eee
}
ul,ol {
color:#333;
text-transform:uppercase;
}
less的继承:类似于mixins
.block {
margin: 10px 5px;
padding: 2px;
}
p {
.block;/继承.block选择器下所有样式/
border: 1px solid #eee;
}
ul,ol {
.block; /继承.block选择器下所有样式/
color: #333;
text-transform: uppercase;
}
====================================>
.block {
margin: 10px 5px;
padding:2px;
}
p {
margin: 10px 5px;
padding:2px;
border: 1px solid #eee
}
ul,ol {
margin: 10px 5px;
padding:2px;
color:#333;
text-transform:uppercase;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值