Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Sass/Scss、Less 是什么?

Sass/Scss、Less 是什么?

原创
作者头像
CRMEB商城源码
发布于 2022-08-02 03:25:17
发布于 2022-08-02 03:25:17
1.2K00
代码可运行
举报
文章被收录于专栏:crmebcrmeb
运行总次数:0
代码可运行

Sass (Syntactically Awesome Stylesheets) 是一种动态样式语言,Sass 语法属于缩排语法,比 css 比多出好些功能 (如变量、嵌套、运算,混入 (Mixin)、继承、颜色处理,函数等),更容易阅读。

Sass 的缩排语法,对于写惯 css 前端的 web 开发者来说很不直观,也不能将 css 代码加入到 Sass 里面,因此 Sass 语法进行了改良,Sass 3 就变成了 Scss (Sassy CSS)。SCSS (Sassy CSS) 是 CSS 语法的扩展。这意味着每一个有效的 CSS 也是一个有效的 SCSS 语句,与原来的语法兼容,只是用 {} 取代了原来的缩进。

Less 也是一种动态样式语言。对 CSS 赋予了动态语言的特性,如变量,继承,运算, 函数. Less 既可以在客户端上运行 (支持 IE 6+, Webkit, Firefox),也可在服务端运行 (借助 Node.js)。

Sass 与 Less 区别

up-142526bdca760ac385e1ad9115378601feb.png
up-142526bdca760ac385e1ad9115378601feb.png

使用:

Less: https://less.bootcss.com/usage/

Sass: https://www.sass.hk/docs/

不同之处

1、Less 在 JS 上运行,Sass 在 Ruby 上使用。

Sass 有工具库 Compass, 简单说,Sass 和 Compass 的关系类似于像 Javascript 和 jQuery 的关系,Compass 在 Sass 的基础上,封装了一系列有用的模块和模板,补充强化了 Sass 的功能。

Less 有 UI 组件库 Bootstrap,Bootstrap 是 web 前端开发中一个比较有名的前端 UI 组件库,Bootstrap 的样式文件部分源码就是采用 Less 语法编写。

2、编写变量的方式不同。

Sass 使用 $,而 Less 使用 @。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//  Sass

$lightColor:#baf;

// Less

@lightColor:#baf;

3、Sass 支持条件语句,可以使用 if {} else {},for {} 循环等等。而 Less 不支持。

4、输出格式不一样

Less 无输出格式,Sass 可以使用特定的输出格式

nested:嵌套缩进的 css 代码

expanded:展开的多行 css 代码

compact:简洁格式的 css 代码

compressed:压缩后的 css 代码

:nested

在执行监测 (编译) 命令时,可以指定输出格式为 nested:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sass --watch styles.scss:styles.css --style nested

nested 格式下,输出的 CSS 代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
div {

  padding: 20px;

  margin: 20px; }

.one {

  background: red; }

.two {

  background: yellow; }

nested 是默认格式,可以不指定。

:expanded

展开格式看起来像开发人员手写的格式。

要将 CSS 输出设置为展开格式,可以使用如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sass --watch styles.scss:styles.css --style expanded

该格式下,输出的 CSS 代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
div {

  padding: 20px;

  margin: 20px;

}

.one {

  background: red;

}

.two {

  background: yellow;

}

.three {

  background: #ff8000;

}

:compact

紧凑格式占用的空间要小得多,每个 CSS 选择符定义只占用一行。

要将 CSS 输出设置为紧凑格式,可以使用如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sass --watch styles.scss:styles.css --style compact

该格式下,输出的 CSS 代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
div { padding: 20px; margin: 20px; }

.one { background: red; }

.two { background: yellow; }

.three { background: #ff8000; }

:compressed

压缩格式占用尽可能少的空间,选择符定义不换行,文件最小,一般用于生产版本。

要将 CSS 输出设置为压缩格式,可以使用如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sass --watch styles.scss:styles.css --style compressed

该格式下,输出的 CSS 代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
div{padding:20px;margin:20px}.one{background:red}.two{background:ye..........

5、引入外部 CSS 文件方法命名有一点不一样

引入外部 CSS 文件

scss 引用的外部文件命名必须以_开头,如下例所示:

其中_test1.scss 文件名如果以下划线开头的话,Sass 会认为该文件是一个引用文件,不会将其编译为 css 文件。

1.混合不同 Mixins

Sass

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 /*声明一个Mixin叫作“error”*/

@mixin error($borderWidth:2px){

  border:$borderWidth solid #f00;

  color: #f00;

}

/*调用error Mixins*/

.generic-error {

  @include error();/*直接调用error mixins*/

}

Less

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*声明一个Mixin叫作“error”*/

.error(@borderWidth:2px){

  border:@borderWidth solid #f00;

  color: #f00;

}

/*调用error Mixins*/

.generic-error {

  .error();/*直接调用error mixins*/

}

7。继承方法不一样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sass的继承:@extend

.block {

  margin: 10px 5px;

  padding: 2px;

}

p {

  @extend .block;/*继承.block选择器下所有样式*/

  border: 1px solid #eee;

}

less的继承:类似于mixins .block

.block {

  margin: 10px 5px;

  padding: 2px;

}

p {

  .block;/*继承.block选择器下所有样式*/

  border: 1px solid #eee;

}

相同之处

Less 和 Sass 在语法上有些共性,比如下面这些:

1、混入 (Mixins)——class 中的 class;

2、参数混入 —— 可以传递参数的 class,就像函数一样;

3、嵌套规则 ——Class 中嵌套 class,从而减少重复的代码;

4、运算 ——CSS 中用上数学;

5、颜色功能 —— 可以编辑颜色;

6、名字空间 (namespace)—— 分组样式,从而可以被调用;

7、作用域 —— 局部修改样式;

8、JavaScript 赋值 —— 在 CSS 中使用 JavaScript 表达式赋值。

为什么选择使用 Sass 而不是 Less?

1、Sass 在市面上有一些成熟的框架,比如说 Compass,而且有很多框架也在使用 Sass,比如说 Foundation。

2、就国外讨论的热度来说,Sass 绝对优于 LESS。

3、就学习教程来说,Sass 的教程要优于 LESS。在国内 LESS 集中的教程是 LESS 中文官网,而 Sass 的中文教程,慢慢在国内也较为普遍。

4、Sass 也是成熟的 CSS 预处理器之一,而且有一个稳定,强大的团队在维护。

5、同时还有 Scss 对 sass 语法进行了改良,Sass 3 就变成了 Scss (sassy css)。与原来的语法兼容,只是用 {} 取代了原来的缩进。

6、bootstrap(Web 框架)最新推出的版本 4,使用的就是 Sass。

源码附件已经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27

提取码: yu27

百度云链接不稳定,随时可能会失效,大家抓紧保存哈。

如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~

#开源地址

码云地址:

https://gitee.com/ZhongBangKeJi/crmeb_java

Github 地址:

https://gitee.com/ZhongBangKeJi/crmeb_java

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CSS预处理器的对比 — sass、less和stylus
本文根据Johnathan Croom的《sass vs. less vs. stylus: Preprocessor Shootout》所译,整个译文带有我们自己的理解与思想,如果译得不好或不对之处还请同行朋友指点。如需转载此译文,需注明英文出处:http://net.tutsplus.com/tutorials/html-css-techniques/sass-vs-less-vs-stylus-a-preprocessor-shootout/,以及作者相关信息 ——作者:Johnathan Croom
laixiangran
2018/04/11
4.7K0
CSS预处理器的对比 — sass、less和stylus
Sass(Scss)、Less的区别与选择 + 基本使用
Sass(Scss)、Less 都是 CSS 预处理器,他们定义了一种新的语言,其基本思想是,用一种专门的编程语言为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行 CSS 的编码工作。
老猫-Leo
2023/12/11
1.7K0
CSS之 sass、less、stylus 预处理器的使用方式
更详细区别参考文档:https://blog.csdn.net/pedrojuliet/article/details/72887490
全栈程序员站长
2021/04/07
9340
Sass-学习笔记【基础篇】
最下边附结构图 在线编辑器网址如下:http://sassmeister.com/  注意编写的时候,符号千万别用了中文的:、;、。...之类的,会报错,Sass也转换不成css。 less和sass的区别: 博客园文章—http://www.cnblogs.com/wangpenghui522/p/5467560.html 本章主要内容:变量 、混合宏 、继承 、占位 、插值 、运算 、数据类型 1:定义 Sass是css预处理器的一种,也是最早的css预处理语言。Sass采用Ruby语言编写,为css增
xing.org1^
2018/05/17
4.9K0
【Sass/SCSS】预加载器中的“轩辕剑”
博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 随着前端技术发展的越来越迅速,前端的样式也需要更加贴近时代的审美,那么CSS就需要承担更多的工作,(强调!这不是煽情!这是宣讲背景。😄),为了给CSS怼上去,预加载器出现了,没错,CSS用上了武器。Sass/SCSS——预加载器中的“轩辕剑”,这也不是我帮它吹,是它自己说的,下图为例。 官网地址:SASS中文网 什么是Sass,它与SCSS是啥关系 感觉这里有点绕,这是怎么回事,
用户4268038
2021/11/18
7650
Sass 写法示例
CSS 本身是非常强大的,但随着样式表变大,变复杂,维护 CSS 变得越来越难。这时候预处理就有用了。Sass 是一种预处理,它能让你使用一些 CSS 中没有的特性,比如:变量,嵌套(nesting),混入(mixins),继承等。这些特性能让 CSS 变的容易维护。更多描述见官网。
前端GoGoGo
2018/08/24
6660
【Sass学习笔记】004-Sass 的基本特性-基础(重要)
在有些编程语言中(如,JavaScript)声明变量都是使用关键词“var”开头,但是在 Sass 不使用这个关键词,而是使用大家都喜欢的美元符号“$”开头。我想用一张图来解释,我一直坚信,一图胜千言万语:
訾博ZiBo
2025/01/06
830
Sass 教程
Sass: (Syntactically Awesome StyleSheets)
零式的天空
2022/03/22
5.8K0
SCSS的用法有哪些?
SCSS(Sassy CSS)是CSS的一种扩展语言,它提供了一些方便的功能和语法来帮助开发者更高效地编写和组织CSS代码。下面是一些SCSS的常见用法和示例:
王小婷
2023/11/02
3170
CSS预处理器入门:Sass/SCSS的实用指南
随着网页开发越发复杂,CSS 的可维护性也越显重要,但在 CSS 语法仍然受限的状况下,发展出了 CSS Preprocessor(CSS 预处理器)来扩展更多的写法。
写bug的高哈哈
2025/01/26
1840
CSS预处理器入门:Sass/SCSS的实用指南
SASS/SCSS入门
SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护。
javascript.shop
2019/09/04
1K0
SASS相关
版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/article/details/53309416
空空云
2018/09/27
8320
SASS相关
前端架构师技术之Sass
CSS 仅仅是一个标记语言,不是编程语言,因此不可以自定义变量,也不可以引用。CSS 主要有以下缺点。
用户9184480
2024/12/13
590
SASS详解@mixins/@include/@extend/@at-root
Sass 支持所有CSS3的 @规则,以及一些已知的其他特定的Sass "指令"。这些在 Sass 都有对应的效果,更多资料请查看 控制指令 (control directives) 。今天重点讲mixins/include/extend
周陆军博客
2023/05/14
1.1K0
Scss学习笔记,持续记录
node-sass需要python环境,可以选择手动安装python或者安装node的同时安装附带的编译工具
房东的狗丶
2023/02/17
9710
第九十二期:css 的source map , sass 的调试 和sass指令
什么?sass也需要调试?是的,也许我们没有关注过这些东西,但是它确实是可以单独拿出来进行调试的。
terrence386
2022/07/15
6260
第九十二期:css 的source map , sass 的调试 和sass指令
CSS预处理器之Sass
"liveSassCompile.settings.autoprefix": 自动添加 CSS 前缀的配置。设置为使用最新的两个版本和全球使用率超过 1% 的浏览器。
HelloWorldZ
2024/03/20
1850
CSS预处理器之Sass
09-移动端开发教程-Sass入门
CSS3之前的CSS都大都是枚举属性样式,而编程语言强大的变量、函数、循环、分支等功能基本都不能在CSS中使用,让CSS的编程黯淡无光,Sass就是一种增强CSS编程的扩展语言(CSS4也可以期待),有了像Sass这种预处理语言后,CSS的编程不再局限在枚举属性了,可以有更广阔的舞台。
老马
2018/02/18
2.3K0
09-移动端开发教程-Sass入门
CSS预处理器之SCSS
变量支持块级作用域,嵌套规则内定义的变量只能在嵌套规则内使用(局部变量),不在嵌套规则内定义的变量则可在任何地方使用(全局变量)。将局部变量转换为全局变量可以添加 !global 声明
小小杰啊
2022/12/21
3.9K0
SASS用法指南
学过CSS的人都知道,它不是一种编程语言。 你可以用它开发网页样式,但是没法用它编程。也就是说,CSS基本上是设计师的工具,不是程序员的工具。在程序员眼里,CSS是一件很麻烦的东西。它没有变量,也没有
ruanyf
2018/04/13
9530
SASS用法指南
相关推荐
CSS预处理器的对比 — sass、less和stylus
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验