Sass和Less的区别

什么是Sass和Less?

答:Sass和Less都属于CSS预处理器;所谓CSS预处理器,就是用一种专门的编程语言,进行 Web 页面样式设计,再通过编译器转化为正常的 CSS 文件,以供项目使用

为什么要使用CSS预处理器?

答:CSS有具体以下几个缺点:

  • 语法不够强大,比如无法嵌套书写,导致模块化开发中需要书写很多重复的选择器;
  • 没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以字面量的形式重复输出,导致难以维护

       这就导致了我们在工作中无端增加了许多工作量。而使用CSS预处理器,提供 CSS 缺失的样式层复用机制、减少冗余代码,提高样式代码的可维护性。大大提高了我们的开发效率。

       但是,CSS预处理器也不是万金油,CSS的好处在于简便、随时随地被使用和调试。预编译CSS步骤的加入,让我们开发工作流中多了一个环节,调试也变得更麻烦了。更大的问题在于,预编译很容易造成后代选择器的滥用。

       所以我们在实际项目中衡量预编译方案时,还是得想想,比起带来的额外维护开销,CSS预处理器有没有解决更大的麻烦。

Sass和Less的比较

答:相同之处:     1、混入(Mixins)——class中的class;
                               2、参数混入——可以传递参数的class,就像函数一样;
                               3、嵌套规则——Class中嵌套class,从而减少重复的代码;
                               4、运算——CSS中用上数学;
                               5、颜色功能——可以编辑颜色;
                               6、名字空间(namespace)——分组样式,从而可以被调用;
                               7、作用域——局部修改样式;
                               8、JavaScript 赋值——在CSS中使用JavaScript表达式赋值。

       不同之处:     1、Less环境较Sass简单

                                  Cass的安装需要安装Ruby环境,Less基于JavaScript,是需要引入Less.js来处理代码输出css到浏览器,                                      也可以在开发环节使用Less,然后编译成css文件,直接放在项目中,有less.app、SimpleLess、                                                  CodeKit.app这样的工具,也有在线编辑地址。
                              2、Less使用较Sass简单

                                  LESS 并没有裁剪 CSS 原有的特性,而是在现有 CSS 语法的基础上,为 CSS 加入程序式语言的特性。只                                    要你了解 CSS 基础就可以很容易上手。
                              3、从功能出发,Sass较Less略强大一些

                                 ①sass有变量和作用域。
                                  - $variable,like php;
                                  - #{$variable}like ruby;
                                  - 变量有全局和局部之分,并且有优先级。
                                 ②sass有函数的概念;
                                  - @function和@return以及函数参数(还有不定参)可以让你像js开发那样封装你想要的逻辑。
                                  -@mixin类似function但缺少像function的编程逻辑,更多的是提高css代码段的复用性和模块化,这个用的                                    人也是最多的。
                                  -ruby提供了非常丰富的内置原生api。

                                 ③进程控制:
                                  -条件:@if @else;
                                  -循环遍历:@for @each @while
                                  -继承:@extend
                                  -引用:@import

                                 ④数据结构:
                                 -$list类型=数组;
                                 -$map类型=object;
                                 其余的也有string、number、function等类型

                               4、Less与Sass处理机制不一样

                                  前者是通过客户端处理的,后者是通过服务端处理,相比较之下前者解析会比后者慢一点

                               5、关于变量在Less和Sass中的唯一区别就是Less用@,Sass用$。

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值