一个很好的介绍的SASS,LESS的区别的文档,值get

1.背景介绍

CSS 是一门非程序式语言,没有变量、函数、SCOPE(作用域),需要书写大量看似没有逻辑的代码,不方便维护及扩 展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少 CSS 编写经验而很难写出组织良好且易于维护的 CSS 代码。为了方便前端开发的工作量,出现了sass和less.

2.知识解剖

Sass背景介绍

sass生于2007   需要先安装Ruby 再装sass . sass的导入(@import)规则和CSS的有所不同,编译时会将@import的scss文件合并进来只生成一个CSS文件。但是如 果你在sass文件中导入css文件如@import 'reset.css',那效果跟普通CSS导入样式文件一样,导入的css文件不会 合并到编译后的文件中,而是以@import方式存在。 所有的sass导入文件都可以忽略后缀名.scss。一般来说基础的文件命名方法以_开头,如_mixin.scss。这种文件在 导入的时候可以不写下划线,可写成@import "mixin"

less生于2009   只要引入less.js即可,  less只是一种单独的文件, 在head标签里引入   这个先引入<link rel="stylesheet/less"  type="text/css"  href="../....../styles.less>  和 这个后引入 <script  src="../..../less.js" type="text/javascript"></script>

下面这个,需要注意:

Sass是对CSS(层叠样式表)的语法的一种扩充,诞生于2007年,最早也是最成熟的一款CSS预处理器语言,它 可以使用变量、常量、嵌套、混 入、函数等功能,可以更有效有弹性的写出CSS。Sass最后还是会编译出合法 的CSS让浏览器使用,也就是说它本身的语法并不太容易让浏览器识别,因为 它不是标准的CSS格式,在它的 语法内部可以使用动态变量等,所以它更像一种极简单的动态语言。 其实现在的Sass已经有了两套语法规则:一个依旧是用缩进作为分隔符来区分代码块的;另一套规则和CSS一 样采用了大括号({})作为分隔符。后一种语法规则又名SCSS,在Sass3之后的版本都支持这种语法规则。

SASS是什么?

Sass(Syntactically Awesome Style Sheets)是一个相对新的编程语言,Sass为web前端开发而生,可以用它来定 义一套新的语法规则和函数,以加强和提升CSS。通过这种新的编程语言,你可以使用最高效的方式,以少量的代 码创建复杂的设计。它改进并增强了CSS的能力,增加了变量,局部和函数这些特性。而这只使Sass一部分利器!

SASS的安装

SASS是Ruby语言写的,但是两者的语法没有关系。不懂Ruby,照样使用。只是必须先安装Ruby,然后再安装SASS。

WINDOW下安装RUBY链接

 
 

在系统上运行来安装Ruby。添加Ruby的bin文件夹到PATH用户变量和系统变量以使用 gem 命令工作,第二个和第三个框去要打勾。

 
 

在系统中打开命令提示符,然后输入以下命令行

gem source -ahttp://rubygems.org/

gem sources -ahttp://ruby.taobao.org/

gem install sass

出现屏幕下方信息,表示SASS 安装成功,(国内线路不稳定,需要多试几次)。

 
 

SASS使用-文件明后缀

sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号;另一种就是我们这里使用的scss文件,这种和 我们平时写的css文件格式差不多,使用大括号和分号。而本教程中所说的所有sass文件都指后缀名为scss的文件。 在此也建议使用后缀名为scss的文件,以避免sass后缀名的严格格式要求报错。

sass的导入

sass的导入(@import)规则和CSS的有所不同,编译时会将@import的scss文件合并进来只生成一个CSS文件。但是如 果你在sass文件中导入css文件如@import 'reset.css',那效果跟普通CSS导入样式文件一样,导入的css文件不会 合并到编译后的文件中,而是以@import方式存在。 所有的sass导入文件都可以忽略后缀名.scss。一般来说基础的文件命名方法以_开头,如_mixin.scss。这种文件在 导入的时候可以不写下划线,可写成@import "mixin"

 
 

sass的导入

 
 

sass的注释

LESS的背景介绍

(2009年开源的一个项目,受Sass的影响较大,但又使用CSS的语法,让大部分开发者和设计师更容易上手。LESS提供了 多种方式能平滑的将写好的代码转化成标准的CSS代码。

LESS的介绍

第一个,less是单独的一种文件,可以理解为css的升级版,完全按照css写也没问题,不过它提供了很多便利的东 西, 可以省好多代码量。

第二个,html只认css,所以需要配套一些软件将less解析成css,引用时候,直接引用css 就好。gulp,koala 都是常用的,Koala更简单且方便一点。 多种方式能平滑的将写好的代码转化成标准的CSS代码。

LESS的安装

LESS的安装和Sass安装有所不同,他不需要依赖于Ruby环境,就能直接安装使用。不过LESS安装分为两种:客户端和 服务器端安装。(这里只讲了客户端口的情况)

less客户端安装

我们可以直接在客户端使用“.less”(LESS源文件),只需要在官网下载一个Javascript脚本文件主“less.js”,然后 在我们需要引入LESS源文件的HTML的中加入如下代码。

 
 

需要注意的是:在引入“.less”文件中,“link”的“rel”属性要设置为“stylesheet/less”。还有更重要的一 点需要注意的是:LESS源文件一定要在“less.js”引入之前引入,这样才能保证LESS源文件正确编译解析。到这里就已经安装好了。

less的使用

使用less,css文件的后缀名需要改为.less在html页面中加入下面代码。

 
 

less定义变量

 
 

less样式嵌套

 
 

less嵌套规则

 
 

名称更为简短,并修改时易查找。

less样式的运算

 
 

less样式的传参

 
 
 
 

4.常见问题

SASS/SCSS、LESS有什么区别?

4.解析问题

1.编译环境不一样

  sass是在服务端编译    变量符是$    (作用域scope不一亲)  可以使用条件语句 IF{}ELSE{},FOR{}循环

  less在浏览器端编译     变量符是@  (作用域scope不一亲)     不可以用条件语句

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

2.变量符不一样,LESS是@,而SCSS是$,而且变量的作用域也不一样。

3.输出设置,LESS没有输出设置,SASS提供4中输出选项:NESTED, COMPACT, COMPRESSED 和 EXPANDED。

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

nested:嵌套缩进的css代码

expanded:展开的多行css代码

compact:简洁格式的css代码

compressed:压缩后的css代码

4.SASS支持条件语句,可以使用IF{}ELSE{},FOR{}循环等等。而LESS不支持。

5.引用外部CSS文件。

scss引用的外部文件命名必须以_开头, 如下例所示:其中_test1.scss、_test2.scss、_test3.scss文件分别设置 的h1 h2 h3。文件名如果以下划线_开头的话,Sass会认为该文件是一个引用文件,不会将其编译为css文件。

6.SASS和LESS的工具库不同。

Sass有工具库Compass, 简单说,Sass和Compass的关系有点像Javascript和jQuery的关系,Compass是Sass的工具库。 在它的基础上,封装了一系列有用的模块和模板,补充强化了Sass的功能。 Less有UI组件库Bootstrap,Bootstrap是web前端开发中一个比较有名的前端UI组件库,Bootstrap的样式文件部分 源码就是采用Less语法编写。

5.参考文献

参考一:SASS入门教程及用法指南

参考二:深入理解CSS块级(block)元素和内联(inline)元素

参考三:初步认识 LESS

参考四:sass、less和stylus的安装使用和入门实践

参考五:sass语法

参考六:less的一些用法整理

参考七:LESS使用简介

作者:远望的云
链接:https://www.jianshu.com/p/bf641d9d979a
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

sass、less是什么,如何使用?的更多相关文章

  1. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  2. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  3. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  4. 前端CSS预处理器Sass

    前面的话   "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...

  5. SASS教程sass超详细教程

    SASS安装及使用(sass教程.详细教程) 采用SASS开发CSS,可以提高开发效率. SASS建立在Ruby的基础之上,所以得先安装Ruby. Ruby的安装: 安装 rubyinstaller- ...

  6. Sass之坑Compass编译报错

    前段时间在使用Compass时遇到了其为难处理的一个坑,现记录到博客希望能帮助到各位. 一.问题: 利用Koala或者是gulp编译提示如下,截图为koala编译提示错误: 二.解决办法 从问题截图上 ...

  7. emmet,jade,haml, slim,less,sass,coffeescript等的实战优缺点

    摘要: 文章背景,来自于群内周五晚上的一次头脑风暴式的思维碰撞交流活动. 随着前端技术的蓬勃发展, 各种新技术随着生产力的需要不断的涌入我们的视野, 那今天探讨的话题是这些新时代的前端兵器谱: 一. ...

  8. Sass用法指南

    写在前面的话:随着CSS文件越来越大,内容越来越复杂,对其进行很好的维护将变的很困难.这时CSS预处理器就能够帮上大忙了,它们往往拥有变量.嵌套.继承等许多CSS不具备的特性.有很多CSS预处理器,这 ...

  9. PostCSS深入学习: PostCSS和Sass、Stylus或LESS一起使用

    如果你喜欢使用PostCSS,但又不想抛弃你最喜欢的预处理器.不用担心,你不需要作出二选一的选择,你可以把PostCSS和预处理器(Sass.Stylus或LESS)结合起来使用. 有几个PostCS ...

  10. Sass:初识Sass与Koala工具的使用

    一.下载Koala(找到合适的系统版本)并安装 二.先新建一个css文件夹,并在里面新建一个文本文档(.txt),将其命名为demo.scss 三.打开Koala,将css文件夹拽进来,可以修改一下输 ...

随机推荐

  1. fjwc2019 D4T1 循环流

    #187. 「2019冬令营提高组」循环流 假的网络流,其实是O(1)算法 手画n个图后,你会发现只要分成几种情况讨论讨论就得了. 当$a==1$时显然不存在. 当$a!=1$时 如果$n==2$,显 ...

  2. 一套权威的 MQTT Client 库

    主流的语言都支持,可链接到 github ,亲测golang client 简单好用 http://www.eclipse.org/paho/downloads.php

  3. CentOS 7下搭建配置 SVN 服务器

    原文链接:https://www.cnblogs.com/tdalcn/p/6937714.html 同步:http://blog.csdn.net/u011884440/article/detail ...

  4. SQL server无法连接上服务器的相关问题

    安装MySql以后,SQL server突然就连接不上服务器了,问了老师,说是啥进程关闭了,都打开了也没搞好,都准备重装了,结果看到度妈上面的一篇文献,原来是SQL  server MSSQLSERV ...

  5. 题说proxy

    昨天在和群友讨论时遇到一题是这样的. 题目描述 //Tomy非常敏感,不喜欢别人碰他的东西.一旦有人碰他就会大喊Don't Touch Me. //完成tomy这个对象,禁止对tomy的内容进行修改( ...

  6. javascript对文件的读写

    整合了一下网上对于js实现文件读写的代码,但是该功能只能在ie浏览器下执行,另外有些电脑上的ie需要设置. 下面是写入代码: var fso = new ActiveXObject("Scr ...

  7. topcoder srm 510 div1

    problem1 link 令$f(x)$表示[0,x]中答案的个数.那么题目的答案为$f(b)-f(a-1)$ 对于$f(x)$来说,假设$x$有$d$位数字,即$[0,d-1]$,那么可以进行动态 ...

  8. git常见使用场景总结

    1.怎么回退到之前的commit? 用git reset --hard HEAD回退到最新提交的版本 用git reset --hard HEAD^回退到上一个版本 用git reset --hard ...

  9. POJ 2387 Til the Cows Come Home 【最短路SPFA】

    Til the Cows Come Home Description Bessie is out in the field and wants to get back to the barn to g ...

  10. MySql 语句收集

    目录 =与:=区别 序列号: 分组: 子查询分组: 同数据库表数据迁移 存储过程 参考: =与:=区别 = 只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用.鉴于此,用变量实 ...