




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Sass和Compass的安装和使用方法支持LESS、SASS/SCSS,代码智能提示和css规则的浏览器支持提示,保存即编译,生成对应的*.css、*.css.map,下面我们来看一篇Sass和Compass的安装和使用方法Sass和Compass是什么?在讲这个之前呢,先介绍下CSS。相信你跟我一样,经过若干段时间的开发后也比较熟悉CSS。但是有一点我们都很清楚,它是一种样式表,并不是一 种编程语言。所以,有些童鞋经常说自己最近在学习CSS编程是错误滴。CSS里包含了很多选择器及应用的样式规则,而其中并不包含变量、函数、继承等这些 我们在一般所有的编程语言里都有的规则。所以说,大家在写CSS和其它编程语言的时候是不一样的感觉。后来开发人员为了方便自己使用呢,向其中加了很多编 程的思想,诸如之前我们提到的变量、函数、语句等这些东西,我们称之为预处理器。其中有很多优秀的比较常用的CSS预处理器,包括Sass、LESS、 Stylus等。那么回到话题上来,Sass是什么?Sass官方定义其为基于CSS的meta language。在我看来,其实Sass是CSS的一个超集,也是一个CSS开发工具。它丰富的语法知识使得CSS增加了诸多编程元素,这对开发人员来 说简直不能再好。我们可以使用我们常用的编程思想去写Sass文件(即.scss文件)。补充一点的是,Sass是免费的,也不需要证书或授权什么的,任何人都可以用。Compass是什么?官方对Compass的定义是,它是一个开源的CSS编码框架。换句话说,它是一个基于Sass的框架。在我理解 来,Compass就像是sass的一个库函数或者框架,提供了非常多的Sass的优秀模块、函数等。你可以选择不使用它,但是使用它会为你编写Sass 文件带来非常大的便利之处,例如一些重用的CSS模块、一些非常流行的CSS栅格布局框架、我们常用的reset/normalizing等。Sass的官方地址:/Compass的官方地址:/GitHub地址:/Compass/compass在继续之前呢,需要澄清的一点是,Sass和Compass不会帮你把CSS写的更好,它们只会给你在写CSS的时候很大的便利性,而真正最后 CSS写出来效果如何还是看你自己对它们的掌握程度。就好像虽然有很多优秀的JS库函数来给你调用一样,如果不掌握了解JS库函数,JS你一样写的稀烂。Sass和Compass的下载与安装在介绍下载与安装之前呢,想要说明的一点儿是Sass和Compass都是基于Ruby语言开发出来的。当然如果你和我一样对Ruby一窍不通 也没关系,因为懂得如何用它们跟它们是怎么开发出来的关系不大。所以我们在安装Sass和Compass之前需要安装Ruby。好了开始下载与安装。Ruby的下载与安装:/en/downloads/。 下载下来后安装即可,由于非常简单过程不表。安装完后可以在命令行里输入以下命令来检查是否成功:ruby -v / output ruby 1.9.3p551那么现在来下载安装Sass和Compass。同样打开命令行,输入以下命令来分别安装Sass和Compass:/for sassgem install sass/for compassgem install compass上面的命令需要解释的是gem。个人感觉gem就像Node里的NPM一样,包的管理工具。不知道理解正确与否。如果成功安装,那么你也可以通过检查对应的版本信息来看是否成功安装:/ for sasssass -v /Sass 3.4.13 (Selective Steve)/ for compasscompass -v / Compass 1.0.3 (Polaris).(其它一些版权信息等)Sass的使用Sass的使用非常方便,打开命令行窗口并切换到对应的工作目录下,假如当前目录有一个你写的scss文件(demo.scss),那么输入以下 命令:sass demo.scss命令行窗口就会显示出demo.css。如果想要将其保存到目录下,使用以下命令:sass demo.scss demo.css。sass的编译有四种不同的输出选项,分别为nested、expanded、compact、compressed。可能讲起来每种 风格用语言形容不好理解,那么看一个例子就知道了。sass代码:#main color: #999; .content color: #bfbfbf; 选择nested编译风格:/* line 2, ./sass/demo.scss */#main color: #999; / * line 4, ./sass/demo.scss */ #main .content color: #bfbfbf; compact风格:/* line 2, ./sass/demo.scss */#main color: #999; /* line 4, ./sass/demo.scss */#main .content color: #bfbfbf; compressed风格:#maincolor:#999#main .contentcolor:#bfbfbfexpanded风格(默认):/* line 2, ./sass/demo.scss */#main color: #999;/* line4, ./sass/demo.scss */#main .content color: #bfbfbf;配置不同的参数,可以编译出不同风格的CSS。看个人喜好,就开发阶段而言,expanded感觉非常不错,发布的时候可以选择compressed。Sass的基础语法(真正的干货)变量的声明与引用声明变量非常简单,语法如下:$varname: varvalue;什么,看起来抽象,那么看个例子:$highlight-color:#abcdef;上面我们声明了一个变量highlight-color用$开头代表声明变量。其对应的值位于冒号之后。下面我们看看怎么用:.danger-box:hover background-color: $highlight-color;完了就这么简单。这里强调一点是,变量一般都声明在sass文件的头部,当然如果变量足够多,建议单独建个文件来保存变量(什么?更多的文件会 增加http请求!呵呵,这个问题我们一会儿说)以便于维护。也许这个例子看起来不必要,因为为了一个颜色我们迂回了那么老半天,还不如自己直接写css 一个值就够了。那么,如果你也这么想,那就图样图森破了。假使你的工程里有足够多的地方用到了这样一个颜色值,那么在一个地方定义变量后其它地方引用后是 不是非常便于我们维护。试想如果我们改版样式,是不是就在一处改一下颜色值全工程使用到这个值的地方都改变了?!css嵌套选择器看个例子来先:#content article h1 color:#333#content article p margin-bottom:1.4em #content aside background-color:#eee 是不是非常眼熟,不出意外的话你的代码里也充斥着这样的代码,看看上面我们重复写的#contentarticle等。当然你会觉得这不多,醒 醒吧,随便打开个真是的工程看看,重复量可是N级别的以至于你总是ctrl+c都觉得烦躁。那么何不把工作降低的简单点儿呢,看看sass语法中嵌套选择 器怎么做的:#content article h1 color:#333 p margin-bottom:1.4em aside background-color:#eee有没有发现,非常简洁!这有点儿像我们编程的时候不断地嵌套函数(有点儿编程的感觉了)。sass编译这个文件后将形成跟之前我们的那个css写 出来的一模一样。编译器如此工作:它将子选择器追加在父选择器之后并应用对应的规则,如上例子h1追加在父选择器article之后再一起追加在 article的父选择器之后,形成 #content article h1 color: #333。注意选择器之间的空格。这里如果你足够机制的话,可能会想到引用一些伪类不就不可行了嘛!是的,所以sass提供了父选择器&。如下:#content &:hover font-size: 20px;编译为css文件后如下:#content:hover font-size: 20px;属性嵌套继续看例子:nav border: style:solid; width:1px; color:#ccc; 编译为CSS文件后如下:nav border-style:solid; border-width:1px; border-color:#ccc;Good!非常方便,以后不用再费劲的多些那么多code了。import文件用过CSS的都知道,CSS文件允许我们引入其它css文件。但是呢,由于性能问题,很少人在正规发布的系统中这么干。因为虽然文件不大,但是它 毕竟增加了http请求,每一次请求的建立和关闭势必将增加页面的堵塞加载时间。从而造成性能下降。看到这里应该明白了吧,上面我们提的那个问题。使用 Sass引入文件不会增加过多的http请求,因为其最终编译后只会是将引入的文件都加载到被引入的文件中形成一个文件。这有非常大的好处,这样我们就可 以将我们的css文件(确切的说是sass写的文件)也分模块管理。将变量定义的scss文件、关于布局的文件、关于reset的文件等等都放在不同的文 件中,将来修改维护就会非常方便。例如如下style.scss文件:import compass;import partials/variables;import partials/mixins;import partials/fonts;import partials/normalize;import partials/base;import partials/placeholders;import partials/layout;import partials/modules;上面文件引入了很多其它文件,其中文件名的默认格式.scss可省略。看到这儿,你可能会有疑问,这样不会增加sass文件编译为css文件的时 间也造成浪费的css文件嘛!听我说,不会的,只要你把每一个文件定义为下划线加文件名即可。例如上面的mixins文件可定义为 _mixins.scss。这样sass在编译的时候不会把它单独编译为一个css文件,明白它就是为了给别的文件引用的。注意,即是文件名定义有下划线 引用的时候依然可以跟上面一样不用加下划线。注释如果你学过JS,那么注释我就不用说了。sass文件注释支持js的两种注释,如下:/这是一行注释/*这又是一行注释*/这里需要强调的是,当编译sass风格选为compressed后,注释会省略掉。但是,我们都知道,我们发布系统的时候,即使是在css里我们也希望留下我们的版权信息等。这个时候,可以使用sass使用的另一种注释风格:/*! 这是注释,编译后不会消失*/不管何种风格,这种注释永不会在css文件中被消失!mixinssass支持一种非常方便的语法,即mixins。类似于定义变量,只不过定义了一块属性,如下定义了名为rounded-corners的mixins:mixin rounded-corners -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px;这样当你使用到圆角的时候,可以如此使用:.danger-box color: red; include rounded-corners; /引用mixins怎么样,是否觉得非常方便?!呵呵 还有更方便的呢!同样看上面的例子:mixin rounded-corners($rounded-size:default-size) -moz-border-radius:$unded-size; -webkit-border-radius:$rounded-size; border-radius:$rounded-size;上面,我们增加了mixins使用时传入的参数,例如:.danger-box include rounder-corners(5px) .warning-box include rounder-corners(8px) 我们可以根据我们的不同需要传入不同的值。当然,你可以设置默认的default-size来确保即使不传值依然有一个默认的值。继承还是看例子比较实在,如下,warning-box、success-box、info-box类都继承了box类的属性并且可以覆盖其属性:/ Box.box padding: 2em; color: $color10; background-color: $color11;/ Warning Box .warning-box extend .box; border: 2px dotted $color1;/ Success Box.success-box extend .box; border: 2px dotted $color4;/ Information Box .info-box extend .box; border: 2px dotted $color7;经编译后CSS文件如下所示:.box, .warning-box, .success-box, .info-box padding: 2em; color: black; background-color: white;.warning-box border: 2px dotted red;.success-box border: 2px dotted chartreuse;.info-box border: 2px dotted blue;是不是有一种碉堡了的感觉!compass的使用讲完sass的使用和语法后我们来看看compass如何用?!打开命令行窗口,输入:compass create myproject.即可初始化工程,其目录如下:IFriU3其中sass文件就是我们编写的sass文件,其编译后的css文件都会跑到stylesheets里。当然,你可以在config.rb中配置这些内容。你知道了,config.rb是compass的一些配置信息。我想你和我一样,也不想每次写点sass代码就得到命令行窗口去手动执行编译命令,因此可以在当前工程下打开命令行窗口输入:compass watch即可。它会自动帮助我们把改动的文件编译为css文件。compass的用处下面我们看看我们都用compass干什么?reset或者叫normalize我们都知道,浏览器给各HTML标签定义了一些默认的样式。我们为了使用这些标签,一般都会重置这些样式到最基本的或者我们熟悉的样式,我们称之为reset或者normalize。平时都是复制粘贴一大堆css的reset样式,这里我们只需要一行代码即可:import compass/reset;当然,这个是compass提供的一套reset代码。如果你不喜欢或者维护着自己的一套reset,你完全可以把它下载到你sass文件夹的 partials目录里,并引进到你的sass文件中,例如我fork别人的normalize样式: /front-thinking/normalize.scss。下载后在你的sass文件中同样一行即可:import partials/normalize;CSS3模块我们都知道,css3依然没有完全实行,因此其中的很多建议都只是各个浏览器在自己实现着,而为了标识个浏览器厂商,他们都在对应的属性前加了自 己的前缀。这给写代码的人
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国液态盐市场供需现状与前景销售渠道预测报告
- 2025年高级防疫员题库及答案
- 智能家居企业股权转让及生态链合作框架
- 2025年主管中药师模拟题及答案
- 2025年医美知识考试题及答案
- 商品房租赁合同购房风险规避协议
- 跨国企业现代学徒制国际化人才引进协议
- 私募基金公司投资决策委员会保密及责任追究合同
- 竞业禁止协议补偿金计算与员工离职权益保障创新
- 离婚双方财产分割与子女监护权分配协议
- 叉车标准化操作流程
- 朋友圈点赞活动方案
- 2026年中考道德与法治一轮复习:重点考点知识分类背诵提纲
- 建筑施工消防安全知识培训
- 抛锚式教学模式课件
- 农产品营销课件
- 2025至2030中国水电工程监理行业发展趋势分析与未来投资战略咨询研究报告
- 超高层工程投标述标答辩指南
- 锚喷工入场安全教育试卷(含答案)
- DeepSeek+AI智能体医疗健康领域应用方案
- 2025至2030年中国玄武岩行业市场行情动态及发展前景展望报告
评论
0/150
提交评论