为什么会出现css预处理器

​ CSS不是一种编程语言,仅仅只能用来编写网站样式,在web初期时,网站的搭建还比较基础,所需要的样式往往也很简单。但是随着用户需求的增加以及网站技术的升级,css一成不变的写法也渐渐不再满足于项目。没有类似js这样的编程语言所有的变量,常量以及其他的编程语法,css的代码难免会显得臃肿以及难以维护。但是又没有css的替代品,于是css预处理器就作为css的扩展,出现在了前端技术中。

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

css预处理器的概念:

​ CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需考虑浏览器的兼容性问题。 比如说:Sass(SCSS)、LESS、Stylus、Turbine、Swithch CSS、CSS Cacheer、DT CSS等。都属于css预处理器。其中比较优秀的: Sass、LESS,Stylus

SASS

英文单词(Syntactically Awesome Stylesheets)的简写,可翻译为“语法上很棒的样式表”。

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

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

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

Sass的工作方式是,在Sass源文件中写代码,然后由Sass程序(Sass编译器/转译器)将其转换为最终浏览器能认识的CSS文件。

备注:sass编译器有三种dart-sass(推荐)、Lib-sass/node-sass(不推荐)、ruby-sass(不推荐)

Sass与Scss的关系

​ Sass的缩排语法,对于写惯css前端的web开发者来说很不直观,也不能将css代码加入到Sass里面,因此sass语法进行了改良,Sass 3就变成了Scss(sassy css)。与原来的语法兼容,只是用{}取代了原来的缩进。

https://www.sass.hk/about/

Less

Less也是一种动态样式语言. 受Sass影响较大,对CSS赋予了动态语言的特性,如变量,继承,运算, 函数. Less 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox) (借助less.js),也可在服务端运行 (借助 Node.js)。

网址:https://lesscss.org/

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

Stylus

2010年产生于node社区, 主要用来给Node项目进行CSS预处理支持,人气不如前两者

Stylus被称为是一种革命性的新语言,提供一个高效、动态、和使用表达方式来生成CSS,以供浏览器使用。Stylus同时支持缩进和CSS常规样式书写规则。

需要安装node

Stylus的语法花样多一些,它的文件扩展名是“.styl”,Stylus也接受标准的CSS语法,但是他也像Sass老的语法规则,使用缩进控制,同时Stylus也接受不带大括号({})和分号的语法

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

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

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

Sass/Scss与Less、stylus区别

编译环境不一样

Sass 需要Ruby环境

Less 需要引入less.js(浏览器)

Stylus 需要安装node

变量符不一样

Sass

$color: #00c; /* 蓝色 */

Less

@color: #00c; /* 蓝色 */

Stylus

mainColor = #00c; /* 蓝色 */

输出风格

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

nested:嵌套缩进的css代码

expanded:展开的多行css代码

compact:简洁格式的css代码

compressed:压缩后的css代码

处理条件语句有差异

最后总结

不管是Sass,还是Less或者stylus,都可以视为一种基于CSS之上的高级语言,其目的是使得CSS开发更灵活、强大,Sass、stylus的功能比Less强大,基本可以说是一种真正的编程语言了,Less则相对清晰明了,易于上手,对编译环境要求比较宽松。个人在实际开发中更倾向于选择Sass。

关于sass(scss)、less、postcss、stylus的简介与区别的更多相关文章

  1. CSS预处理器Sass(Scss)、Less、Stylus

    CSS 预处理编译器能让我成程序化其的方式编写CSS代码,可以引入CSS中没有的变量.条件.函数等特性,从而让代码更简单易维护,但一般按预处理器语法编写的代码无法直接在浏览器中运行,需用通过工具比如g ...

  2. 「Vue」vue-cli 3.0集成sass/scss到vue项目

    vue-cli 3提供了两种方式集成sass/scss: 创建项目是选择预处理器sass手动安装sass-loader创建项目选择预处理器sass$ vue create vuedemo? Pleas ...

  3. CSS预处器的对比——Sass、Less和Stylus

    预处器的对比--Sass.LESS和Stylus 转载: 英文原文:http://net.tutsplus.com/tutorials/html-css-techniques/sass-vs-less ...

  4. sass、less和stylus的安装使用和入门实践

    刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用c ...

  5. CSS预处理器——Sass、LESS和Stylus实践

    CSS(Cascading Style Sheet)被译为级联样式表,做为一名前端从业人员来说,这个专业名词并不陌生,在行业中通常称之为“风格样式表(Style Sheet)”,它主要是用来进行网页风 ...

  6. CSS预处理器的对比 — Sass、Less和Stylus

    本文根据Johnathan Croom的<sass vs. less vs. stylus: Preprocessor Shootout>所译,整个译文带有我们自己的理解与思想,如果译得不 ...

  7. CSS预处理器 Less Sass,Scss 编译 Sourcemap调试

    sass.less和stylus的安装使用和入门实践     SASS用法指南    Sass Basics CSS预处理器 css preprocessor 预处理器即preprocessor,预处 ...

  8. sass、less、stylus的安装及使用

    一.什么是CSS预处器 CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就 只要使用这种语言进行编码工作.通俗的 ...

  9. 比较三个 CSS 预处理器:Sass、LESS 和 Stylus(上)

    前沿 : 第一次写不够成熟,可能描述有所错误,还请大家修改指正,我会对已完成的文章进行修改. 一.什么是CSS预处理器 CSS预处理器定义了一种新的语言,基本的思想是用一种专门的编程语言,开发者只需要 ...

  10. CSS预处理器—Sass、LESS和Stylus

    http://www.w3cplus.com/css/css-preprocessor-sass-vs-less-stylus-2.html 一.什么是CSS预处器 CSS预处理器定义了一种新的语言, ...

随机推荐

  1. Git分支教程:详解分支创建、合并、删除等操作

    Git是一种强大的分布式版本控制系统,它的分支功能使得团队协作和代码管理变得更加灵活和高效.分支可以让开发人员在不影响主线开发的情况下进行并行开发和实验性工作.本篇博客将详解Git分支的创建.合并.删 ...

  2. 基于istio实现多集群流量治理

    本文分享自华为云社区<基于istio实现多集群流量治理>,作者: 可以交个朋友. 一 背景 对多云.混合云等异构基础设施的服务治理是Istio重点支持的场景之一.为了提高服务的可用性,避免 ...

  3. HarmonyOS Codelab 优秀样例——购物应用,体验一次开发多端部署魅力

    一. 样例介绍 本篇Codelab基于自适应布局和响应式布局,实现购物应用在手机.折叠屏.平板不同屏幕尺寸设备上按不同设计显示.通过三层工程结构组织代码,实现一次开发,多端部署 . 手机运行效果如图所 ...

  4. k8s之hostPath存储卷

    一.简介 hostPath:用于将目录从工作节点的文件系统挂载到pod中. 数据的生命周期与节点相同.我们知道,虽然hostPath卷实现pod中数据存储到节点的文件系统中,但是pod的调度不是固定的 ...

  5. 在centOS上配置web服务器

    centos,web服务,apache,ftp服务器,mysql,makefile (1). 检查系统是否正常 # more /var/log/messages //检查有无系统内核级错误信息 # d ...

  6. 一周涨 15k Star 的开源项目「GitHub 热点速览」

    你训练大语言模型(LLM)用的什么框架?有没有想过不用框架训练 GPT-2? GitHub 上就有这么一位大神(Andrej Karpathy),他仅用大约 1k 行的 C 代码就完成了 GPT-2 ...

  7. vue中执行异步函数async和await的用法

    在开发中,可能会遇到两个或多个函数异步执行的情况,对于Vue中函数的异步函数执行做了一个小总结,如下: 异步执行使用async和await完成 created() { this.init() }, m ...

  8. vue项目node-scss装不上问题( vue执行npm install报错: Can‘t find Python executable “python“, you can set the PYTHON env variable

    一.描述从网上下载的一个Vue模板项目,导入VsCode,执行npm install命令后,报错了,报错的信息是node-sass安装失败,同时提示需要python环境的错误信息,这是因为安装node ...

  9. “让专业的人做专业的事”,畅捷通与阿里云的云原生故事 | 云原生 Talk

    简介: 如何借助阿里云强大的 IaaS 和 PaaS 能力去构建新一代的 SaaS 企业应用,从而给客户提供更好.更强的服务,这是畅捷通一直在思考和实践的方向.最终,畅捷通选定阿里云企业级分布式应用服 ...

  10. 在游戏运营行业,Serverless 如何解决数据采集分析痛点?

    简介: 众所周知,游戏行业在当今的互联网行业中算是一棵常青树.在疫情之前的 2019 年,中国游戏市场营收规模约 2884.8 亿元,同比增长 17.1%.2020 年因为疫情,游戏行业更是突飞猛进. ...