编写过页面的开发者都知道css这个东西,究其原意,也就是层叠样式表,我们页面的三大结构,html css javascript,其中html负责主要的页面结构,css就负责主要的页面样式,而我们的js就主要负责页面的动态,在这里我们知道css是基于渲染原理,和w3c来设计标准的,对于简单的页面来说,页面内容不是很多,所以样式也就不会很多,这种情况下面编写的css样式表,也就不会显得十分的臃肿,但是如果我们卡开发的是一些比较大型的网站的话,光是页面就会有很多,加上内容和样式,你就会发现里面会有很多重复性的代码,比如导航,一些div的样式,一些footer,nav等等,其中的样式规则是相同的,但是我们在进行开发的时候还是得进行重复的编写,这在无形之中就增加了我们的工作量。

思考一下有没有什么办法可以解决这一个问题呢?办法总是会有的,但是我们需要注意的就是选择一个高效的,之前提到过的使用angular中的模板引入,但是这样做的缺点就是即使你只需要引入很少的样式,但是你都得写很多的代码,这样做显然不太适合,在这里我们compass的sass框架,作为css的代表作品诞生了,下面我们就来领略一下这个神奇的sass。

我们都知道css充其量只能算是样式规则,样式表,还算不上是一个语言,因为在css中我们没有别的编程语言所能够使用的变量啊,赋值啊,继承什么的,但是在这里,我们sass的出现,就可以使得css变成语言,能够赋予它语言的特有属性,让css去组织模块,封装,复用代码,更重要的是让css看上去更加具有设计感,但是在这里我们仍然需要明白的是sass并不会让你写出更好的代码,如果你需要提高你的css代码水平。建议还是熟悉掌握基本的css语法,以及元素的使用方法,加上不断的项目经验,在这里sass能够帮你做到的是让你更高效的写出高可维护性的代码,主要体现在一下几个方面:

1.sass对于原生的CSS@import指令的扩展,我们都知道在一个页面中引入外部样式表有多种方法,但是@inport我们是不会选择去用的,主要是因为其效率实在很低。

但是在这里的@import可以把样式分散到多个更小的文件中去,这样一来整个css的结构马上就会变得清晰了。

2.其中的变量机制,通过sass我们可以避免之前的样式规则如行高,颜色,定位等等这里需要写,那边完全相同还是需要写,这sass就提供了一个统一的地方归纳整理,开发者如果需要改变一些布局,直接在变量上更改就会应用到整个页面中去,如果是传统的话需要页面的更改,那工作量就大了。

3.标准样式的分离,就像我们调用函数一样,将一些样式抽取出来,避免我们的复制粘贴。

4.这里深入了样式继承的概念,这个大大简化了我们查找bug的工作,我们需要的只是从父元素的继承机制入手,就可以轻松搞定。

以上简单罗列了一些sass的好处,通过这个可以让我们感受到sass和compass不仅是我们的开发者工具更是web设计师的设计工具,在熟悉了sass的基础上我们在完成页面的时候需要的就是一个对整个页面的一个宏观把控,我们不是站在编写页面的高度去看待,我们需要站在页面设计师的高度去看待。更多的sass方面的知识没有办法在这里一一罗列,感兴趣的可以去查一些资料,见识一下这个神奇的工具。

初识sass框架的更多相关文章

  1. 初识 Spring 框架

    初识 Spring 框架可以帮助我们构建规范的.优秀的应用程序,简化烦琐的编码过程. Spring 是一个非常著名的轻量级的企业级开源框架,Spring 的目标是使 Java EE 更易用并促进良好的 ...

  2. Sass:初识Sass与Koala工具的使用

    一.下载Koala(找到合适的系统版本)并安装 二.先新建一个css文件夹,并在里面新建一个文本文档(.txt),将其命名为demo.scss 三.打开Koala,将css文件夹拽进来,可以修改一下输 ...

  3. 初识Spring框架实现IOC和DI(依赖注入)

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的, IoC是 ...

  4. 初识Mybatis框架,实现增删改查等操作(动态拼接和动态修改)

    此第一次接触Mybatis框架确实是有点不适应,特别是刚从Hibernate框架转转型过来,那么为什么要使用Mybatis框架,Mybatis框架和Hibernate框架又有什么异同呢? 这个问题在我 ...

  5. 初识Polymer框架

    什么是polymer? polymer由谷歌的Palm webOS团队打造,并在2013 Google I/O大会上推出,旨在实现Web Components,用最少的代码,解除框架间的限制的UI 框 ...

  6. 初识SSH框架

    想了解SSH的工作原理吗?还不快快来看我的新文章----ssh框架的工作原理 也许你还不知道SSH存在的意义,但只是因为在没点开这篇文章之前的事了. SSH由Strut2,Spring,Hiberna ...

  7. 初识Spring框架

    一.Ioc 1)概念:Ioc(Inversion Of Control)控制反转,也被称为依赖注入DI(Dependency Injection),是面向对象编程的一种思想. 2)作用:用来减低程序代 ...

  8. 初识hibernate框架之一:进行简单的增删改查操作

    Hibernate的优势 l 优秀的Java 持久化层解决方案  (DAO) l 主流的对象—关系映射工具产品 l 简化了JDBC 繁琐的编码 l 将数据库的连接信息都存放在配置文件 l 自己的ORM ...

  9. 初识phaser框架——开源的HTML5 2D游戏开发框架

    背景: 在网上看到,65行实现flappy bird,感到很好奇.原来是使用开源的2D游戏框架 phaser开发的. 什么是phaser2D游戏开发框架呢? 借鉴与网上的资料: 1.    Phase ...

随机推荐

  1. -_-#【HTML】同一个标签页打开

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. HDOJ/HDU 1250 Hat's Fibonacci(大数~斐波拉契)

    Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequen ...

  3. poj 1080 dp如同LCS问题

    题目链接:http://poj.org/problem?id=1080 #include<cstdio> #include<cstring> #include<algor ...

  4. hdoj 2094 产生冠军

    产生冠军 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. oracle空表导不出来

    在oracle 11g r2中,使用exp有时候会导不出空的表,原因是这些表没有分配空间,手工分配空间即可导出. ----查询当前用户下的所有空表: select table_name from us ...

  6. 浅谈UML中类之间的五种关系及其在代码中的表现形式

    本文转载:http://www.cnblogs.com/DebugLZQ/archive/2013/05/13/3066715.html 什么是类? 将某类东西归纳在一起,可以成为一个类. 类有很多种 ...

  7. CSU1315:全场最水题之陈兴老师与比赛

    Description 大家都知道ACM比赛罚时很重要.比如说你做A题要10分钟,B题要15分钟,如果先做A题再做B题,那么在ranking上的时间就是10 + (10)+ 15 = 35.如果先做B ...

  8. lua字符匹配

    匹配下列格式的数据中的 source和MAC地址: Chain WiFiDog_br-lan_Outgoing (1 references) pkts bytes target prot opt in ...

  9. ReentrantLock与synchronized的差别

    总的来说,lock更加灵活. 主要同样点:Lock能完毕synchronized所实现的全部功能 不同: 1.ReentrantLock功能性方面更全面,比方时间锁等候,可中断锁等候,锁投票等,因此更 ...

  10. 再回首,Java温故知新(十一):Java反射

    最近继续回顾Java基础,进行到了Java反射这一部分,个人感觉这部分应该算是Java的高级特性了,在日常开发中使用的并不多,应用人员主要是工具构建人员,所以这次学习中以了解为主,Java反射主要应用 ...