什么是Sass和Less?
Sass和Less都属于CSS预处理器。
什么是 CSS 预处理器呢?
CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行CSS的编码工作。
用一种专门的编程语言,进行 Web 页面样式设计,再通过编译器转化为正常的 CSS 文件,以供项目使用
为什么要使用CSS预处理器?
CSS是一种标记语言,不是编程语言,不可以自定义变量,不可以引用等等。
CSS有具体以下几个缺点
(1)语法不够强大,比如无法嵌套书写,导致模块化开发中需要书写很多重复的选择器;
(2)没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以字面量的形式重复输出,导致难以维护。
使用CSS预处理器,提供 CSS 缺失的样式层复用机制、减少冗余代码,提高样式代码的可维护性,提高开发效率。
区别
1.Less环境比Sass简单
Sass的安装需要安装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有变量和作用域。
变量有全局和局部之分,并且有优先级。
②sass有函数的概念
@function和@return以及函数参数(还有不定参)可以让你像js开发那样封装你想要的逻辑。
@mixin类似function但缺少像function的编程逻辑,更多的是提高css代码段的复用性和模块化,这个用的人也是最多的。
ruby提供了非常丰富的内置原生api。
③进程控制
-条件:@if @else;
-循环遍历:@for @each @while
-继承:@extend
-引用:@import
④数据结构
-map类型=object;
其余的也有string、number、function等类型
4.处理机制不一样
Less是通过客户端进行处理(解析较慢)
Sass是通过服务器端进行处理
为什么选择使用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。
网友评论