关于sass、scss、less的概念性知识汇总

这篇文章主要解答如下几个问题,供前端开发者的新手参考。php

一、什么是Sass和Less?css

二、为何要使用CSS预处理器?前端

三、Sass和Less的比较编程

四、为何选择使用Sass而不是Less?bootstrap

什么是Sass和Less?

  Sass和Less都属于CSS预处理器,那什么是 CSS 预处理器呢?api

  CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增长了一些编程的特性,将 CSS 做为目标生成文件,而后开发者就只要使用这种语言进行CSS的编码工做。数组

  转化成通俗易懂的话来讲就是“用一种专门的编程语言,进行 Web 页面样式设计,再经过编译器转化为正常的 CSS 文件,以供项目使用”。浏览器

为何要使用CSS预处理器?

  做为前端开发人员,你们都知道,Js中能够自定义变量,而CSS仅仅是一个标记语言,不是编程语言,所以不能够自定义变量,不能够引用等等。sass

CSS有具体如下几个缺点:ruby

  语法不够强大,好比没法嵌套书写,致使模块化开发中须要书写不少重复的选择器;

  没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以字面量的形式重复输出,致使难以维护。

  这就致使了咱们在工做中无故增长了许多工做量。而使用CSS预处理器,提供 CSS 缺失的样式层复用机制、减小冗余代码,提升样式代码的可维护性。大大提升了咱们的开发效率。

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

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

Sass和Less的比较

不一样之处

  • 一、Less环境较Sass简单

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

  • 二、Less使用较Sass简单

LESS 并无裁剪 CSS 原有的特性,而是在现有 CSS 语法的基础上,为 CSS 加入程序式语言的特性。只要你了解 CSS 基础就能够很容易上手。

  • 三、从功能出发,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等类型

  • 四、Less与Sass处理机制不同

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

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

相同之处

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

一、混入(Mixins)——class中的class;
二、参数混入——能够传递参数的class,就像函数同样;
三、嵌套规则——Class中嵌套class,从而减小重复的代码;
四、运算——CSS中用上数学;
五、颜色功能——能够编辑颜色;
六、名字空间(namespace)——分组样式,从而能够被调用;
七、做用域——局部修改样式;
八、JavaScript 赋值——在CSS中使用JavaScript表达式赋值。

为何选择使用Sass而不是Less?

一、Sass在市面上有一些成熟的框架,好比说Compass,并且有不少框架也在使用Sass,好比说Foundation。二、就国外讨论的热度来讲,Sass绝对优于LESS。三、就学习教程来讲,Sass的教程要优于LESS。在国内LESS集中的教程是LESS中文官网,而Sass的中文教程,慢慢在国内也较为广泛。四、Sass也是成熟的CSS预处理器之一,并且有一个稳定,强大的团队在维护。五、同时还有Scss对sass语法进行了改良,Sass 3就变成了Scss(sassy css)。与原来的语法兼容,只是用{}取代了原来的缩进。六、bootstrap(Web框架)最新推出的版本4,使用的就是Sass。

相关文章
相关标签/搜索