关于sass(scss)、less、postcss、stylus的简介与区别

819 阅读3分钟

为什么会出现css预处理器

image.png

css不是一种编程语言,仅仅只能用来编写网站样式,在web初期时,网站的搭建还比较基础,所需要的样式往往也很简单。但是随着用户需求的增加以及网站技术的升级,css一成不变的写法也渐渐不再满足于项目。没有类似js这样的编程语言所具有的变量、常量以及其他编程语法,css难免会显得非常臃肿且难以维护。but也没有css的替代品,于是乎,css预处理器应运而生。

css预处理器(Sass/Scss、Less、postcss、stylus)到底是什么?

css预处理器的概念:

css预处理器用一种专门的编程语言,进行Web页面样式设计,终再编译成css文件。css预处理器为css增加了一些编程的新特 性,无需考虑浏览器兼容问题。比较优秀且常用的几个css预处理器:sass、less、stylus。

sass

image.png

sass:英文全称:Syntactically Awesome Stylesheets,

网址:https://sass-lang.com/

中文网址:https://sass.hk/

sass是一种动态样式语言,由Ruby设计和开发,sass语法属于缩排语法,比css多出好多功能(如变量、嵌套、运算、混入(mixin)、继承、指令、颜色处理、函数等),更易于阅读。

sass和scss的关系

sass的缩排语法,对于写惯css语法的开发者非常不友好且无法将css代码加入到Sass里面,因此sass语法进行了改良,sass3就变成了scss(sassy css)。与原来的语法兼容,只是用{}取代了原来的缩进。

sass代码

#id
width:100px
height:200px

scss代码

#id{
width:100px;
height:200px;
}

less

less也是一种动态样式语言,受sass影响较大,为css语言赋予了动态语言的特性,比如:变量,继承,运算,函数。less既可以在客户端上运行,也可以在服务端运行。

网址:https://lesscss.org/

中文网址:https://less.bootcss.com/

stylus

2010年产生于node社区,主要用来给node项目进行css预处理支持。 stylus被称为是一种革命性的新语言,它提供了一个高效、动态、和使用表达方式来生成css。stylus同时支持缩进和css常规书写方式(需要安装node),stylus的语法花样多一些,它的文件扩展名是".styl"。

网址:https://stylus-lang.com/

中文网址:https://www.stylus-lang.cn/

中文网址:https://www.zhangxinxue.com/jq/stylus/

saaa/scss与less、stylus的区别

image.png

  1. 编译环境不同

    sass需要ruby环境,less需要引入less.js,stylus需要安装node

  2. 变量符不一样

    sass:$color:#f40

    less:@color:#f40

    stylus:mainColor = #f40

  3. 输出风格

sass输出样式的风格可以有四种选择,默认为nested

nested:嵌套缩进的css代码

expanded:展开的多行css代码

compact:简介格式的css代码

compressed:压缩后的css代码

总结

不管是sass、less或者stylus,都可以视为一种基于css之上的高级语言,其目的是为了使css开发更加的灵活、强大,sass、stylus的功能比less强大,基本上可以说是一种真正的编程语言,less则相对清晰明了,易于上手,对编译环境的要求比较比较宽松。