一切福田,不離方寸,從心而覓,感無不通。

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、变量作用域不一样

 

3、输出

less没有输出设置
scss提供四种输出选项:nested, compact, compressedexpanded
有四种选择,默认为nested

  • nested:嵌套缩进的css代码
  • expanded:展开的多行css代码
  • compact:简洁格式的css代码
  • compressed:压缩后的css代码
4、条件语句

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

 

5、引入外部css

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

 

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

三、总结

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

 

from:https://blog.csdn.net/guoqiankunmiss/article/details/106113821