less、scss,sass的区别

Sass与Less都是CSS预处理器,提供了变量、嵌套等功能,增强了CSS的可读性和维护性。Sass需要Ruby环境,Less可使用客户端或Node.js。Sass有缩进和括号两种语法,Less仅使用括号。Sass支持条件语句和更丰富的输出选项。在作用域、变量和导入文件方面两者有所不同。在实际开发中,Sass功能更强大,但Less更易上手。选择取决于项目需求和个人偏好。
摘要由CSDN通过智能技术生成
  • ***当前阶段的笔记 ***

「面向实习生阶段」https://www.aliyundrive.com/s/VTME123M4T9 提取码: 8s6v
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

less、scss/sass的区别

一、less、scss/sass

scss/sass是动态样式语言,比css多出很多功能(如变量、嵌套、运算,混入(Mixin)、继承、颜色处理,函数等),更方便阅读和维护。

less也是动态样式语言,一样也比css多处很多功能(如变量,继承,运算, 函数), Less 既可以在客户端上运行,也可在服务端运行 ( Node.js)。

scss和sass的关系

Sass是缩排语法,对于习惯css的web开发者来说很不直观,还是有点学习成本,也不能将css代码加入到sass里面,因此sass语法进行了改良,Sass 3就变成了Scss(sassy css)。与原来的语法兼容,只是用{}取代了原来的缩进,更容易阅读。

二、Sass/Scss与Less区别
1、编译环境

sass的安装需要Ruby环境,是在服务端处理的,而less是需要引入less.js来处理less代码输出css到浏览器,也可以在开发环节使用less,然后编译成css文件,直接放到项目中,也有 Less.app、SimpleLess、CodeKit.app这样的工具,也有在线编译地址。在一般前端项目里面使用 yarn add less yarn add less-loader添加到对应的项目里面。

2、变量
1、lessscss的变量符不一样

less是@、scss是$、css变量是两根连词线(- -)

2、变量作用域不一样
/** Less-作用域*/
@color: #00c; /* 蓝色 */
#header {
  @color: #c00; /* red */
  border: 1px solid @color; /* 红色边框 */
}

#footer {
  border: 1px solid @color; /* 蓝色边框 */
}

/** Less-作用域编译后*/
#header{border:1px solid #cc0000;}
#footer{border:1px solid #0000cc;}

/**scss-作用域*/
$color: #00c; /* 蓝色 */

#header {

  $color: #c00; /* red */
  border: 1px solid $color; /* 红色边框 */
}

#footer {
  border: 1px solid $color; /* 蓝色边框 */
}

/** Sass-作用域编译后*/

#header{border:1px solid #c00}
#footer{border:1px solid #c00}

/** 我们可以看出来,less和scss中的变量会随着作用域的变化而不一样。
*/
3、输出
less`没有输出设置
`scss`提供四种输出选项:`nested`, `compact`, `compressed` 和 `expanded`。
有四种选择,默认为`nested
  • nested:嵌套缩进的css代码
  • expanded:展开的多行css代码
  • compact:简洁格式的css代码
  • compressed:压缩后的css代码
4、条件语句

less不支持条件语句
scss语句支持if{}else{}、for{}循环语句

/** if else */
@if lightness($color) > 30% {
	/**	do....*/
} @else {
	/**	do....*/
}


/**	循环*/
@for $i from 1 to 10 {
  	.border-#{$i} {
    	border: #{$i}px solid red;
  	}
}
5、引入外部css

scss引用的外部文件命名必须以_开头, 如下例所示:其中_test1.scss_test2.scss_test3.scss文件分别设置的h1 h2 h3。文件名如果以下划线_开头的话,sass会认为该文件是一个引用文件,不会将其编译为css文件.

// 源代码:
@import "_test1.scss";
@import "_test2.scss";
@import "_test3.scss";

// 编译后:
h1 {
  font-size: 17px;
}
 
h2 {
  font-size: 17px;
}
 
h3 {
  font-size: 17px;
}

less引用外部文件和css中的@import没什么差异。

三、总结

sass/scss或是less,都可以看作为一种基于css之上的高级语言,其目的是使得css开发更灵活和更强大,sass的功能比less强大,基本可以说是一种真正的编程语言了,less则相对清晰明了,易于上手,对编译环境要求比较宽松,在实际开发中更倾向于选择less。但如果认真深入scss之后还是建议切换到scss,因为更加强大,更好用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SCSS、LESS和Sass都是CSS预处理器,它们的主要区别在于语法不同。 Sass是最早的CSS预处理器之一,它使用缩进式语法,不需要使用分号和大括号。而SCSS和LESS则使用类似于CSS的语法,使用分号和大括号来表示代码块。 SCSS和LESS都是在Sass的基础上发展而来的,它们在语法上更接近于CSS,因此更容易学习和使用。同时,它们也提供了更多的功能和特性,如变量、嵌套、混合等,可以帮助开发者更快速、更高效地编写CSS代码。 总的来说,SCSS和LESS是Sass的两个变种,它们的主要区别在于语法的不同,但它们都可以提高CSS的编写效率和可维护性。 ### 回答2: SCSS、LESS 和 SASS 都是 CSS 预处理器,能够提高 CSS 样式的可维护性、可重用性和可扩展性,它们的基本语法都差不多,但是还是有些区别SASS 是最早出现的一种 CSS 预处理器,它通过一种类似 Ruby 的语法来编写 CSS,支持类和变量的定义、模板引入和函数的拓展等功能。如果你之前学过 Ruby 或者对 Ruby 比较熟悉的话,那么使用 SASS 会相对容易些。 LESS 是一个较新的 CSS 预处理器,它使用的是类似于 CSS 的语法,比 SASS 更加容易学习,同时 LESS 提供有许多有用的功能,如变量、嵌套、运算、函数、作用域等。 SCSSSASS 的后续版本,兼容 CSS3 语法规范,和 LESS 一样,使用的是类似于 CSS 的语法,SCSS 是基于 SASS 的缩进语法上实现的一种新的语法,他集成了 CSS3 的新特性,例如:多层嵌套、混合、继承、变量、循环等。 总的来说,虽然三者语法有所不同,但本质上都是 CSS 预处理器,能够提升 CSS 的编写效率和可维护性。具体要选择哪种预处理器,可以根据个人的喜好和项目需求来决定,但是,当前 SCSS 的使用者最多,因为 SCSS 最为灵活且功效显著,同时也是现代前端技术中使用量最大的 CSS 预处理器之一。 ### 回答3: SCSS,LESS和SASS是三种常见的CSS预处理器。它们被用来编写更加简单、清晰、易于维护的CSS代码。这三种预处理器的共同点在于,它们都允许开发者使用变量、嵌套、混合、函数、继承等高级功能,从而提高CSS编写的效率和可读性。 然而,尽管这三种预处理器有很多相似之处,它们之间也有一些不同之处。 首先,它们的语法不同。Sass使用严格的缩进语法。而SCSS则更接近于CSS的语法,使用花括号和分号。LESS的语法则在两者之间,灵活性更强。 其次,它们的文件扩展名也有所不同。Sass使用“.sass”文件扩展名,SCSS使用“.scss”文件扩展名,而LESS使用“.less”文件扩展名。 另外,它们对于变量的声明也有所不同。在Sass中,使用“$”符号来声明变量。而在SCSS和LESS中,使用“@”符号来声明变量。 另外,它们的一些功能也不同。比如,Sass支持条件语句,而SCSS不支持。LESS可以使用循环,而Sass和SCSS则不能。 在实际使用中,选择使用哪种预处理器主要取决于个人偏好和项目需求。如果对 Sass 的缩进语法非常熟悉并且需要使用条件语句时,就可以选择 Sass。如果习惯了 CSS 的大括号语法并且对 Less 的循环和嵌套规则比较喜欢,就可以选择 Less。如果需要同时兼顾以上两点,SCSS 是个更好的选择。无论选择哪个,都需要理解基本的 CSS 语法和概念,这样才能更好地运用预处理器来提高工作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值