博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大话css预编译处理(一)通读介绍篇
阅读量:6093 次
发布时间:2019-06-20

本文共 2199 字,大约阅读时间需要 7 分钟。

一、什么是css预编译处理?

CSS 预编译处理,从字面上理解,就是预先编译处理CSS。它扩展了 CSS 语言,增加了变量、Mixin、函数等编程的特性,使 CSS 更易维护和扩展。CSS预编译的工作原理是提供便捷的语法和特性供开发者编写源代码,随后经过专门的编译工具将源码转化为CSS语法。

CSS预编译器几乎成为现如今开发CSS的标配,它从以下几个方面提升了CSS开发的效率:

  1. 增强编程能力;
  2. 增强可复用性;
  3. 增强可维护性;
  4. 更便于解决浏览器兼容性。

不同的预编译器特性虽然有所差异,但核心功能均围绕这些目标打造,比如:

•    嵌套;•    变量;•    mixin/继承;•    运算;•    模块化;

嵌套是所有预编译器都支持的语法特性,也是原生CSS最让开发者头疼的问题之一;

mixin/继承是为了解决hack和代码复用;变量和运算增强了源码的可编程能力;
模块化的支持不仅更利于代码复用,同时也提高了源码的可维护性。

二、为什么要使用CSS预编译处理?

1.CSS有具体以下几个缺点:

1)    语法不够强大,比如无法嵌套书写,导致模块化开发中需要书写很多重复的选择器;2)    没有变量和合理的样式复用机制,使得逻辑上相关的属性值必须以字面量的形式重复输出,导致难以维护。

2.使用CSS预编译处理的优势:

使用CSS预处理器,可以提供 CSS 缺失的样式层复用机制、减少冗余代码,提高样式代码的可维护性。大大提高了我们的开发效率。

3.使用CSS预编译处理的劣势:

CSS预处理器也不是万金油,CSS的好处在于简便、随时随地被使用和调试。预编译CSS步骤的加入,让我们开发工作流中多了一个环节,调试也变得更麻烦了。更大的问题在于,预编译很容易造成后代选择器的滥用。所以我们在实际项目中衡量预编译方案时,还是得想想,比起带来的额外维护开销,CSS预处理器有没有解决更大的麻烦。

三、CSS主流预处理器:SassLessStylus

目前css主流预处理器是SassLessStylus,最早的CSS预编译器是2007年起源于Ruby on Rails社区的SASS,目前比较流行的其他CSS预编译器如LessStylus的诞生都一定程度上受到了SASS的影响和启发。

三大框架简介
1、
Sass:2007年诞生,最早也是最成熟的CSS预处理器,拥有ruby社区的支持和compass这一最强大的css框架,目前受
LESS影响,已经进化到了全面兼容CSS的
SCSS
其实现在的
Sass已经有了两套语法规则:一个依旧是用缩进作为分隔符来区分代码块的;另一套规则和CSS一样采用了大括号({})作为分隔符。后一种语法规则又名
SCSS,在Sass3之后的版本都支持这种语法规则。

2、Less:2009年出现,受SASS的影响较大,但又使用CSS的语法,让大部分开发者和设计师更容易上手,在ruby社区之外支持者远超过SASS,其缺点是比起SASS来,可编程功能不够,不过优点是简单和兼容CSS,反过来也影响了SASS演变到了SCSS的时代,著名的Twitter Bootstrap就是采用LESS做底层语言的。

3、Stylus:2010年产生,来自Node.js社区,主要用来给Node项目进行CSS预处理支持,在此社区之内有一定支持者,在广泛的意义上人气还完全不如SASS和LESS

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

四、CSS预处理器的选择

1、Sass

优点

1)    用户多,更容易找到会用scss的开发,更容易找到scss的学习资源;2)    可编程能力比较强,支持函数,列表,对象,判断,循环等;3)    相比less有更多的功能;4)    Bootstrap/Foundation等使用scss;5)    丰富的sass库:Compass/Bourbon;

缺点

安装node-sass会经常失败或者报错,需要使用cnpm或者手工安装

2、Less

优点:

可以在浏览器中运行,实现主题定制功能;

缺点:

编程能力弱,不直接支持对象,循环,判断等;@variable 变量命名和css的@import/media/keyframes等含义容易混淆;mixin/extend的语法比较奇怪;mixin的参数如果遇到多参数和列表参数值的时候容易混淆;

3、Stylus

优点:

来自NodeJS社区,所以和NodeJS走得很近,与JavaScript联系非常紧密。还有专门JavaScript API:http://learnboost.github.io/stylus/docs/js.html支持Ruby之类等等框架3.更多更强大的支持和功能

缺点:

人气不高和教程较少

总结:

Sass看起来在提供的特性上占有优势,但是LESS能够让开发者平滑地从现存CSS文件过渡到LESS,而不需要像Sass那样需要将CSS文件转换成Sass格式。Stylus功能上更为强壮,和js联系更加紧密。

五、CSS预处理器的学习

Sass中文文档:
Less中文文档:
Stylus官方文档:
Stylus 中文文档:

转载地址:http://mimwa.baihongyu.com/

你可能感兴趣的文章
绘制阴影引发的 iOS 绘图性能问题总结
查看>>
见招拆招:绕过WAF继续SQL注入常用方法
查看>>
Spring容器中Bean的作用域
查看>>
Maven项目环境搭建(Maven + Spring + IBatis)步骤
查看>>
基本数据类型对象包装类
查看>>
Java解析Groovy和Shell的代码
查看>>
功能表单之子功能集合字段类型的使用——JEPLUS软件快速开发平台
查看>>
JEPLUS后台API的查看使用——JEPLUS软件快速开发平台
查看>>
要么滚回家里去,要么就拼命
查看>>
nginx的中文rewrite规则
查看>>
GlusterFS安装配置
查看>>
log4j.properties配置详解(转载)
查看>>
css3常见的动画
查看>>
ubuntu16.04 改usb键盘的keycode.md
查看>>
flex组件拖拽
查看>>
python统计通过暴力破解尝试登陆本机的ip和次数
查看>>
linux下查看所有用户及所有用户组
查看>>
2012:Android关键而危险的“升级”之年
查看>>
HttpSessionListener接口监听网站在线人数
查看>>
spring事务属性的几个试验
查看>>