关于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算一门编程语言。当然,对于部分开发人员来说,究竟谁是不是编程语言可能无关紧要,只要会运用它们就行,嘿嘿~。(暂完)

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

关于Sass和Less牵扯的问题的更多相关文章

  1. Sass与Web组件化相关的功能

    Sass https://en.wikipedia.org/wiki/Sass_(stylesheet_language) Sass (Syntactically Awesome Stylesheet ...

  2. 【化繁为简】非前端开发者的福音---CSS的预处理语言 Less&Sass

    写在前面:        众所周知CSS 是一门非程序式语言,没有变量.函数.SCOPE(作用域),在前期的界面样式设计时,需要书写大量看似没有逻辑的代码,不方便维护及扩展,也不利于重复调用,尤其对于 ...

  3. 最好用的css辅助工具——SASS&LESS

    前言 首先,小编给大家解释一下什么是SCSS和LESS,Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables).嵌套 (nested rules).混合 ...

  4. 高效开发之SASS篇 灵异留白事件——图片下方无故留白 你会用::before、::after吗 link 与 @import之对比 学习前端前必知的——HTTP协议详解 深入了解——CSS3新增属性 菜鸟进阶——grunt $(#form :input)与$(#form input)的区别

    高效开发之SASS篇   作为通往前端大神之路的普通的一只学鸟,最近接触了一样稍微高逼格一点的神器,特与大家分享~ 他是谁? 作为前端开发人员,你肯定对css很熟悉,但是你知道css可以自定义吗?大家 ...

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

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

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

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

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

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

  8. 前端CSS预处理器Sass

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

  9. SASS教程sass超详细教程

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

随机推荐

  1. ZROI-Day2比赛解题报告

    ZROIDay2-比赛解题报告 版权原因不提供题面信息 序 这几天作息有点鬼畜,虽然昨晚很晚睡但是早上精神还不错,看到题发现T1很友好?T2woc这暴力都好难打?T3多项式?!这样下去比赛会不会出现更 ...

  2. wpf之二进制资源

    一.当需要添加图片.音频.视屏的资源到wpf项目里是,可以直接把文件添加到项目里 右击add->existing item. 1.如果想将外部文件编异常目标成为二进制资源,在文件的属性窗口 Bu ...

  3. OGG学习笔记01

    OGG学习笔记01-基础概述OGG(Oracle Golden Gate),最近几年在数据同步.容灾领域特别火,甚至比Oracle自己的原生产品DataGuard还要风光,主要是因为其跨平台.跨数据库 ...

  4. useradd 报Creating mailbox file: File exists

    问题描述:增加一个用户时,报下面的错误:[root@master ~]# useradd hadoopuseradd: warning: the home directory already exis ...

  5. 在已有lnmp环境的基础上安装PHP7

    Centos7.6系统 已经安装lnmp一键环境 想装个apache跑php7, apache安装在这 https://www.cnblogs.com/lz0925/p/11227063.html 要 ...

  6. 【Day1】3.数据类型

     视频地址(全部) https://edu.csdn.net/course/detail/26057 课件地址(全部) https://download.csdn.net/download/gentl ...

  7. 4G LTE 网只能提供数据服务,不能承载语音通话,该怎么理解?

    转:http://www.qbiao.com/16776.html 这个问题要从移动核心网的角度来理解.我们平时说的WCDMA.TD-SCDMA.TD-LTE其实通常指空口技术,即从手机到基站的通信技 ...

  8. 4.5. scrapy两大爬虫类_Spider

    一:Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取 的 ...

  9. Redis06-Redis集群

    Redis集群 介绍 1.单机.单实例的持久化方式 在我们之前的课程中,我搭建了一个单机,单进程,缓存redis.我们使用rdb,aof持久化,用来确保数据的安全. rdb(relation-ship ...

  10. mybatic MapperScannerConfigurer的原理

    原文地址:http://www.cnblogs.com/fangjian0423/p/spring-mybatis-MapperScannerConfigurer-analysis.html 前言 本 ...