关于Sass和Less牵扯的问题

关于Sass和Less牵扯的问题


关于Sass和Less

Sass和Less都算是一种编程语言(后面会详谈此处牵扯出来的编程语言),都是CSS预处理器,都具有相同的功能,可以帮助我们快速编译CSS代码,

细一点来说: Sass是一种动态样式语言,Sass语法的缩排语法,比CSS比多出很多功能,如变量,嵌套,运算,继承,颜色处理,函数等,易于阅读。
Sass是基于ruby运行的(就好比HTML文件是基于浏览器运行的),Sass是在服务器端处理的,而Less是基于JavaScript,所以,Less是在客户端处理的。这就是Sass和Less的实现区别。

所以很多开发者不选择Less,可能就是因为JavaScript引擎需要额外的时间来处理代码。(我乱猜的)

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

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

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

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

运算——CSS中加入数学运算;

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

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

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

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


关于HTML和CSS

我们所说的CSS和HTML算不算编程语言呢?答案是No,即HTML和CSS都不是一种编程语言(HTML我在讲Markdown的那篇文章里也提到过),HTML(超文本标记语言)是结构化文档,就算是数据结构的一种(变体)吧,CSS(层叠样式表)就是渲染引擎的怎么运作的配置文件,只能算是一种数据。

其实判定它们是不是编程语言的界限,是看它们具备不具备图灵完备(下面会细说图灵完备)。解释图灵完备之前,我们再来解释一个小问题:我们经常提到的HTML5(H5)又是什么呢?

1.简单的说: HTML5是html+CSS3+js api的一种规范
2.详细的说:在狭义上HTML5也是不具备图灵完备,所以不算编程语言,它包含的是HTML等基础标记。
而在广义上,HTML5感觉更像一个平台,而不是一种语言。有人也把 CSS3 划归到HTML5里面,更具划时代意义的是HTML5 提供了很多 js 的api,通过 js 调用这些api可以做到很多完备编程语言的事情。

那我们把HTML5怎么称呼合适呢?其实HTML5叫做一种代码规范标准更合适。HTML作为一门标记语言,更重要的作用是作为信息的呈现载体,注重信息的呈现形式。而HTML5中出现了很多的新特性,但总体还是更偏重于信息的呈现方式,而不是对信息本身的处理。


图灵完备

好了,我们现在回过来说图灵完备(Turing completeness),

图灵完备性是针对一套数据操作规则而言的概念。数据操作规则可以是一门编程语言,也可以是计算机里具体实现了的指令集。当这套操作规则可以实现图灵机模型里的全部功能时,就称它具有图灵完备性。

所以计算机编程语言都是图灵完备的。说的再直白一点,就是一门编程语言里是有逻辑判断(例如if,elseif判断),循环(例如for循环)和函数,要有代码的复用性。 CSS和HTML都不具备这些吧,

这就是为什么HTML和CSS不是编程语言,而Sass和Less算一门编程语言。当然,对于部分开发人员来说,究竟谁是不是编程语言可能无关紧要,只要会运用它们就行,嘿嘿~。(暂完)

如有不足和不对的地方,希望各位看客大牛指点迷津,感谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值