浅谈Sass与Less区别、优缺点

摘要:
Sass是一种动态风格的语言。Sass语法的缩进语法比Css有更多的功能,如变量、嵌套、操作、继承、颜色处理、函数等。事实证明,LESS——和Sass——具有比这更多的功能。另一方面,Sass基于Ruby并在服务器端进行处理。LESS和Sass在变量方面的唯一区别是LESS使用@,而Sass使用$。Sass中的语法与LESS非常相似。它只使用$来声明变量,然后使用前面提到的@mixin和@include来调用。

  Sass是一种动态样式语言,Sass语法的缩排语法,比Css比多出很多功能,如变量,嵌套,运算,继承,颜色处理,函数等,易于阅读。Cass的安装需要安装Ruby环境,是服务器端处理的,Less是需要引入Less.js来处理代码输出css到浏览器,也可以在开发环节使用Less,然后编译成css文件,直接放在项目中,有less.app、SimpleLess、CodeKit.app这样的工具,也有在线编辑地址。

  事实证明,LESS——以及Sass——功能比这个要多太多。LESS和Sass在语法上有些共性,比如下面这些:

  ● 混入(Mixins)——class中的class;

  ● 参数混入——可以传递参数的class,就像函数一样;

  ● 嵌套规则——Class中嵌套class,从而减少重复的代码;

  ● 运算——CSS中用上数学;

  ● 颜色功能——可以编辑颜色;

  ● 名字空间(namespace)——分组样式,从而可以被调用;

  ● 作用域——局部修改样式;

  ● JavaScript 赋值——在CSS中使用JavaScript表达式赋值。

  LESS和Sass的主要不同就是他们的实现方式,LESSS是基于JavaScript,所以,是在客户端处理的。

  另一方面,Sass是基于Ruby的,然后是在服务器端处理的。很多开发者不会选择LESS因为JavaScript引擎需要额外的时间来处理代码然后输出修改过的CSS到浏览器。关于这个有很多种方式,我选择的是只在开发环节使用LESS。一旦我完成了开发,我就复制然后粘贴LESS输出的到一个压缩器,然后到一个单独的CSS文件来替代LESS文件。另一个选择是使用LESS.app来编译和压缩你的LESS文件。两个选择都将最小化你的样式输出,从而避免由于用户的浏览器不支持JavaScript而可能引起的任何问题。尽管这不大可能,但终归是有可能的。

  LESS Is More

  介绍

在你的项目中引入LESS很简单:

1.下载less.js;

2.创建一个文件来放你的样式,比如style.less;

3.添加以下代码到你的HTML的<head>中:

  1. <link rel="stylesheet/less" type="text/css" href="styles.less"
  2. <script src="less.js" type="text/javascript"></script

请注意link的rel属性。你需要在属性值的最后面使用/less以使LESS起作用。然后在link后面引入scirpt也是必须的。如果你在用HTML5语法——为什么不用呢?——你可以省去type=”text/css”和type=”text/javascript”。

其实也有一个服务器端的LESS版本。在服务器上安装LESS的最简单的办法就是使用Node Package Manager (NPM,一看就知道是基于Node.js的)。

  变量  

关于变量在LESS和Sass中的唯一区别就是,LESS用@,Sass用$。同时还有一些作用域上的差别,我后面会提到。

  混入(mixin)

偶尔,我们会创建一些会在样式表中重复使用的样式规则。没有人会阻止你在一个HTML的元素中使用多个class,但是你可以用LESS,在样式表中完成。

  参数混入
就像在CSS中有函数功能一样,这些对于那些在现在的CSS工作中多余的工作非常有用。最好和最有用的例子就是我们正在经历的从CSS2到CSS3过渡过程中的很多浏览器私有前缀。Nettuts+有一篇Jeffrey Way写的很赞的视频和文章,内容是包含着由有用的参数组成的文件,他们涵盖了大部分使用各个浏览器私有前缀的CSS3属性。

Sass中的语法很像LESS,只是使用$声明变量,然后使用前面提到的@mixin和@include来调用。

  

免责声明:文章转载自《浅谈Sass与Less区别、优缺点》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# 操作Excel大全MyBatis配置文件(八)--databaseIdProvider数据库厂商标识下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

css cross-fade()实现背景图像半透明效果

实现图像半透明的方法挺多,无论是filter滤镜、mask遮罩、opacity透明度设置都可以实现 要用background-image背景图片实现的话,可能第一个就会想到使用::before、::after伪元素实现,例如: .box {position:relative;z-index:0; }.box::before {content:'';posi...

利用CSS实现带相同间隔地无缝滚动动画

说明:因为在移动上主要利用CSS来做动画,所以没有考虑其他浏览器的兼容性,只有-webkit这个前缀,如果需要其他浏览器,请自行补齐。 首先解释一下什么是无缝滚动动画, 例如下面的例子 See the Pen css实现上下循环滚动效果 by lilyH (@lilyH) on CodePen. ------------------------------...

10大经典CSS3菜单应用欣赏

很多时候,我们的网页菜单需要个性化,从而来适应各种行业的用户视觉操作体验。本文将带领大家一起来欣赏10个非常经典的CSS3菜单应用,菜单涉及到动画菜单、Tab菜单、面包屑菜单等。 1、CSS3飘带状3D菜单 菜单带小图标 这次我们要来分享一款很特别的CSS3菜单,菜单的外观是飘带状的,并且每一个菜单项有一个精美的小图标,鼠标滑过菜单项时,菜单项就会向上凸起...

css的引入方式和区别

一、css的四种引入方式 1.内联式引用:直接用在标签上,但维护成本高 style='font-size:16px;color:#000000' 2.外部连接式引用:css代码与html代码分离,便于代码重复使用 <link href="css/style.css" type="text/css" rel="stylesheet" /> st...

utf-8编码引起js输出中文乱码的解决办法

如果web application的编码规则是utf-8,如网页头中的:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 那么js文件中如果有中文输出就会出现乱码,解决此个问题可在引用javascript输出的地方加上charset="gb2312" 或 ...

用CSS开启硬件加速来提高网站性能

1. 何为硬件加速 就是将浏览器的渲染过程交给GPU处理,而不是使用自带的比较慢的渲染器。这样就可以使得animation与transition更加顺畅。 我们可以在浏览器中用css开启硬件加速,使GPU (Graphics Processing Unit) 发挥功能,从而提升性能 现在大多数电脑的显卡都支持硬件加速。鉴于此,我们可以发挥GPU的力量,从而...