前端开发离不开三剑客:html、Javascript、css.

  1. html:主要进行网页内容的开发语言
  2. JavaScript: 主要对页面业务逻辑的开发语言
  3. css:主要对网页外观样式进行注解的文本

没错就是文本,css仅仅是一种文件格式,而非编程语言,那么有没有一种对网页样式进行编程的语言那,答案是肯定的,比如本篇文章的主角SASS,还有另外两种比较常用的css预处理器(框架)Less CSS、Stylus。

1. CSS预处理器的必要性

 css主要对页面的DOM元素进行样式的设定,虽然某些样式也可以继承,比如font-size、opacity,CSS也提供了各种选择器,

其本质都是围绕DOM元素进行样式设定的,随着前端项目工程越来越大,样式文件的冗余性、可维护性带来的副作用也越发显得重要;

比如情景一,你的项目中定义了一个基本颜色,有上万处的不同元素运用了改样式,突然某天产品要求网站更新风格,换了一种色值,如何实现?

  1. 全局搜索该色值,将其替换为新的色值;
  2. 定义一个样式类,更改该样式类的色值,在每一处进行需要更改的DOM元素上添加该样式;

再比如情景二,你的项目多处引用了一个相似的border样式,仅仅是border的线宽不一样,如何实现?

  1. 定义多个样式类,每个样式类引用一种线宽;

不用css预处理器,我们同样可以满足产品的各种花式需求,仅仅是工作量大了一些,仅仅是重复的多写几行乃至几千行代码而已,仅此而已!!!

试想一下,加入我们的色值可以采用一个变量,只需要轻轻改变这个色值变量的值就可以满足场景一的需求;假如我们可以像编写JS代码一样写一个可输入变量的程序,

就可以满足产品设计场景二的需求,即便他有成千上万的线宽,你需要做的仅仅是更改一个变量即可;

是的,CSS预处理器已经完全为我们实现了,这就是CSS预处理器存在的意义

2. SASS主要特性

 CSS预处理器是一种语言,任何一种css预处理器都完全兼容css,它可以为CSS增加一些编程特性,无需考虑浏览器兼容性问题,让你在CSS中使用变量、简单的逻辑程序、函数等其他的一些功能,请不要停留在石器时代了,开启css编程的新起点吧;

2.1. sass提供四中可选的编程风格

  1. nested:嵌套缩进的css代码; ————默认风格
  2. expanded:没有缩进,扩展的css代码;
  3. compact :简介格式的css代码;
  4. compressed:压缩后的css代码;————生产环境使用

    2.2. SASS主要功能

    包括:变量支持、嵌套、混入(mixin)、继承、导入、函数、操作符

最新文章

  1. 基于DFA敏感词查询的算法简析
  2. web前端基础知识-(八)Django进阶之数据库对象关系映射
  3. [安卓] 15、用NFC解锁手机并自动打开应用
  4. Eclipse导入项目:No projects are found to import
  5. 2014年5月份第1周51Aspx源码发布详情
  6. 定时器 corn 表达式
  7. vim中设置Python自动补全
  8. VS的启动方式
  9. 敌情篇 ——DDoS攻击原理
  10. php非阻塞执行系统命令
  11. xml--小结④DTD的验证问题,不要用IE检验,IE不靠谱
  12. sqlserver 时间 格式化
  13. [RxJS] Creation operators: interval and timer
  14. 关于Java中数组的常用操作方法
  15. 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本
  16. ,vue-router使用心得
  17. 大课深度复盘、解密研发效率之道 | 第42届MPD工作坊成都站日程公布!
  18. 使用config 来管理ssh的会话
  19. 前端限制input输入框(只能输入正整数)
  20. MVC项目实践,在三层架构下实现SportsStore-11,使用Knockout实现增删改查

热门文章

  1. MySql三大范式与数据库设计和表创建常用语句
  2. mysql update 批量更新
  3. 添加保存less报错
  4. [编织消息框架][netty源码分析]10 ByteBuf 与 ByteBuffer
  5. JS面向对象一
  6. 2017最新技术java高级架构、千万高并发、分布式集群、架构师入门到精通视频教程
  7. Hibernate缓存和懒加载的坑你知道多少?这5个简单问题回答不上来就不敢说会用hibernate
  8. Streaming结合Kafka
  9. Solr6.6 创建core
  10. 4.vbs的循环,switch,判断等语句