sass基础以及实战

为什么要在项目中使用Sass

听到最多的一句话就是我会CSS,我能使用CSS写项目,为什么我要花时间去学习Sass,一个自己并不了解的东西,一个对于自己来说是全新的东西?看到这样的问题,让我想起了2010年讨论CSS3的时候,很多同学同样有这样的凝问,CSS3真的会来?我真的要学习CSS3?现在,时间证明了一切。我还是想说,很多东西并不是需要的时候才去学,机会是给有准备的同学。

似乎有些离题了,我们还是回到今天的话题中来,为什么要在项目中使用Sass?在此,我仅想说说我个人的一些看法。

首先,CSS能完成的事情,Sass一样能完成,而且可能更好的完成,另外CSS做不到的事情,却有很多Sass能做到,比如:

  • Sass可以定义变量,混合宏,%placeholder
  • Sass可以定义函数;
  • Sass可以使用@if@fore@while这样的控制指令;
  • Sass可以使用JSON数据(map);

当然,除了这些基本功能之外,在项目中使用Sass,还可以让你更好的维护项目,扩展项目,复用项目等。还能让你的代码更简洁。

说到这里,还有一种声音在说,小项目有必要使用Sass?试问,项目有大小之分吗?既然Sass能帮助我们更好的开发、管理、维护项目,那么为什么只允许在大项目中使用Sass,而不能在小项目中使用呢?难道小项目就需要维护吗?不需要管理吗?带着这样的问题,往下阅读,或许你会有些改观。

怎么在项目中使用Sass

说了这么多,同学们更为关心的是怎么在项目中使用Sass。并不太在意Sass有多好。因为这样的争论也实在是没有太多的意义。那么我们就不说其他的,就说怎么在项目中使用Sass吧。

经过在项目中使用Sass,我自身有一些看法,或者说我的操作方式吧。也当是经验吧,希望对初学者有所帮助。

创建运行Sass的环境

要想在项目中正常使用Sass,你得先保证你的电脑上能运行Sass的环境。这也是Sass受限,也是不被大家爱戴的原因之一。很多人讨论使用Sass,需要先安装Ruby环境。对于不喜欢命令编译的同学,还需要安装GUI编译器。

其实安装Sass环境也并不是件难事,就好比配Wamp环境,整完一次就OK了。但就是这么第一次的安装,给初学者带来很多的障碍,也成了同学们学习Sass和使用Sass的拦路虎。如果你只是想学习或者了解Sass的话,可以不用在本机上安装Sass,你可以借助在线编辑器,比如:SassMeisterCodePen。而且他们都支持即写即所得。如果你对Sass已有一定的基础,想在项目中使用,已是蠢蠢欲动了,那你还是离不开在电脑中安装Sass环境。至于如何在电脑上安装Sass,在这篇文章中就不做过多的阐述,感兴趣的同学可以阅读下面的文章:

我想根据上面的教程介绍,在你的电脑上安装Sass不会是件难事。不过在我们天朝,有些东西被墙了,时常让你安装Sass不成功。在这里给大家介绍一个简单的方法:

假设你已成功安装好了Ruby。先将Sass下载到本地。并打开你的命令终端:

gem install

此时先不要回车,将你下载下来的Sass安装包,用鼠标拖到"install"后面,此时你在命令终端,可以看到:

gem install /Users/airen/Downloads/sass-3.3.14.gem

这个时候再回车,这样就OK了。为了确认是否安装成功,只面要输入:

sass -v

如果能看到Sass版本号,就表示你已成功安装了。接下来你就可以做你想做的事情了。

注:不同的系统,不同的用户和版本,对应相关路径和信息都会不一样“/Users/airen/Downloads/sass-3.3.14.gem”。

创建公用的Sass项目模板

在做项目时,不管什么项目,他们之间总是有一些可以共用的部分。比如说重置样式、公用样式、模块组件、UI库等。那么在Sass项目中也是如此。为了避免在每个项目中做一些相同的事情,那么你可以在你的电脑上创建一个公用的Sass项目模板。比如我创建的:

在这样的一个模板中,每个Sass目录下的文件夹都对应着各种分类的_xxx.scss文件:

  • base:放置一些基本样式的SCSS文件,比如重置样式_normalize.scss,基本样式_base.scss,文本排版样式_typography.scss
  • components:放置一些公用组件,比如:按钮_buttons.scss、表单_form.scss、表格_tables.scss、选项卡_tabs.scss
  • helps:放置一些辅助功能性文件,比如:_css3.scss_variables.scss_mixins.scss_helpers.scss_function.scss
  • layout:放置一些跟页面布局相关的,比如:_layout.scss_header.scss_footer.scss_sidbar.scss
  • pages:放置跟具体项目页面相关的样式文件。
  • themes:对于一些有前后台页面,或者需换肤的项目,就可以将相关文件放置在这里。
  • vendors:引用的外部插件或者框架的SCSS文件,比如_bootstrap.scss_foundation.scss
  • style.scss这是主样式文件,最终编译,就编译这个问题。当然根据项目大小,可做一些其他处理。比如说针对不同的页面,创建不同的page_xxx.scss文件。

当然每个人或许会有不同的方式方法。创建好了这样的一个模板之后,以后只要有新项目,就可以复制、粘贴,然后修改项目名称,这样就即可。

不过,对于一些公共使用的部分,还是尽量在公用模板中修改。比如说你添加的混合宏mixin、占位符%placeholder、函数功能function。还有就是一些公用的组件。

或许这样复制并不方便,那是否可以考虑像Compass这样的框架,自己写一个可安装的功能呢?或者将公用的部分,引用到你所有需要的项目中?不过这两种方法,我都没有尝试过。其一,自己不会写那种带有gem安装功能的东东,其二,没有单独试过在不同的项目中使用相对路径调用资源。如果您尝试过,记得与我们一起分享。

组织Sass项目

其实就是将公用的这个当作是一个Sass项目,只不过这个Sass项目是用来做备用的,可以无限制的复用。那么在创建这样的一个项目时,就需要合理的组织,便天后期的使用。

早前翻译过John W. Long一篇文章如何组织一个Sass项目。上面的文件组织结构的思路就是来源于此。当然,大家还可以参考一些大型Sass框架做为参考:

Compass

Foundation

Bootstrap-Sass

除此之外,还有:

Sass项目的编译与调试

具备上述之后,你在具体编写Sass的时候,还需要掌握Sass的编译和调试。众所周知,在项目中具体引用的是.css文件而不是.scss或者.sass文件。所以你要将写好的Sass编译成需要的CSS。对于如何编译?其实方法很多种,你要是喜欢使用命令,你可以直接在命令终端编译,如果你不喜欢命令编译,你还可以使用GUI这样的界面工具辅助编译。具体的可以阅读:

除此之外,你要是对Node,Grunt和Gulp熟悉,你还可以使用他们帮你编译Sass。比如《Nodejs+Grunt配置SASS项目自动编译》一文所介绍。

至于如何调试,前端开发人员都知道可以使用Firebug这样的工具来调试CSS。其实使用Sass的同学,也非常期待能在Firebug下直接调试Sass。那么现在在Chromet和Firefox浏览器都支持了Sass的Soucemap功能,可以直接在浏览器中调试相应的Sass。如下面的几篇文章所言:

Sass在项目中的实战

说了这么多,我们还是以一个实例来做示例吧,这样形象一些。假设收到这样一个项目:

在“后台”和“前台”各对应了一些设计图。这些我们并不需要太多关心,他们长成什么样子。先将创建好的公用Sass项目复制一份,并将其粘贴到你本地项目环境中,修改成你需要的项目名,比如我这里将其称为“tuhaokuai”。

抛弃其他因素不看,仅看"sass"目录,Sass公用项目和新项目“tuhaokuai”长得是一模一样。当然,在里面会不一样的。主要在pages目录中,针对所需的页面创建了不同的页面文件:

如此一来,针对不同的页面,添加其对应的样式代码,比如:

_index.scss

_mysite.scss

其他文件就不一一展示了,看上去是不是非常清楚。其实简单点说,这些东西就是一些零件,我们要让项目样式生效,就需要把需要的零件装上去,然后固定他。这样就好了。在这个项目中,由于他并不太复杂,只使用了一个主样式:style.scss。并且将需要的东西通过@import引入进来:

此时你只需要将style.scss编译成style.css,引用到你的项目就行了。

其实你也可以按照你自己的需求去组装,假设,首页我只需要首页用到的样式,那么你完全可以创建一个index.scss的SCSS文件,然后将需要的引入进来:

接下来,在index.html引用编译出来的样式文件index.css即可(文件名你可以换成自己想要的)。

结论

在这篇文章中主要介绍了自己如何将Sass运用到实际项目之中。简单人介绍了为什么要在项目使用Sass,以前使用Sass之前要做些什么?又是如何具体操作。希望这篇文章对初学者有所帮助。也希望更多的同还来分享项目中使用Sass的体验与碰到的问题。而且又是如何解决这些问题。

时间: 2024-10-07 06:00:34

sass基础以及实战的相关文章

sass基础用法

sass基础用法 SASS是什么 传统的CSS是一种单纯的描述性样式文件,然而SASS可以对CSS进行预编译处理. 在SASS源码中可以使用变量.函数.继承等动态语言的特性,并且可以编译成CSS文件. 安装与使用 安装 由于sass是ruby写的,所以想要使用sass就需要安装ruby环境.然后再使用gem安装sass. 输入下面的命令进行安装sass: gem install sass 可以使用sass -v命令查看sass的版本. 使用 新建一个后缀名为.scss源码文件,就可以编辑sass

[已读]Sass与Compass实战

介绍了Sass基础语法与Compass框架,这个网上参考文档就OK了,另外介绍了compass生成图片精灵和相应的css,貌似现在单纯用sass和compass的挺少,要不grunt,要不FIS,而grunt和FIS貌似都有自己的图片精灵方案(好吧,我都没用过)?所以,这本书也没什么必要看了→ →

《web 前端基础到实战系列课程》

<web 前端基础到实战系列课程> 摘要: mod_expires&mod_headers可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求. 在使用之前,首先要确认一下"mod_expires"模组是否有启用.如果是自己安装Apache来架设网页主机的话,这里我们可以透过编辑Apache的"httpd.conf"设定档来处理 一.浏览器缓存原理 将该行前面的"#"字号删除

零基础Swift实战开发视频教程_从入门到精通

零基础Swift实战开发从入门到精通(4大项目实战.酷跑熊猫.百度音乐.足球游戏等)适合人群:初级课时数量:50课时更新程度:86%用到技术:Swift涉及项目:酷跑熊猫.百度音乐.足球游戏咨询qq:1840215592零基础Swift实战开发视频教程采用基础+项目的方式进行讲解,通过基础的学习,可以完全掌握Swift基本语法应用,并结合4个项目进行开发,学员能在最短的时间内掌握开发的各项技能. 零基础Swift实战开发从入门到精通详细查看:http://www.ibeifeng.com/goo

sass和compass实战 读书笔记(一)

sass优势: 不做重复的工作 一  消除样式表冗余(通过变量赋值的方式) 1. 通过变量来复用属性值 2. 使用嵌套来快速写出多层级的选择器 3. 通过混合器来复用一段样式 4. 使用选择器继承来避免重复属性 sass通过配置文件config.rb配置文件输出路径 sass基础语法 变量声明  局部变量和全局变量的概念 css代码块中定义的变量就是局部变量 $base-border:1px solid #ccc; $plain-font:Helvetica."Microsoft Yahei&q

Sass基础——Rem与Px的转换

rem是CSS3中新增加的一个单位值,他和em单位一样,都是一个相对单位.不同的是em是相对于元素的父元素的font-size进行计算:rem是相对于根元素html的font-size进行计算.这样一来rem就绕开了复杂的层级关系,实现了类似于em单位的功能. Rem的使用 前面说了em是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小,在我们多次使用时,就会带来无法预知的错误风险.而rem是相对于根元素<html>,这样就意味着,我们只需

Docker基础入门实战(一)

Docker基础入门实战 第1章          docker简介 1.1  what is Docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源,源代码部署在GitHub上. Docker是通过内核虚拟技术来提供容器的资源隔离与安全保障,由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,从而提高资源的利用率. Docker的目标是实现轻量级的操作系统虚拟化解决方案. 1.2 

ajax从零基础到实战

一. 什么是AJAX? ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 二. 在项目中怎么运用AJAX? 项目主要文件夹目录有img文件夹,css文件夹,js文件夹,如果你要运用到ajax,那么你可以在js里面建立一个js文件存放ajax代码,在相应html页面引入这个js文件即可. 三. AJAX的结构怎么写? //ajax的结构 $(function(){ $.ajax({ url:"https://www.xxxx.com/shop/xxxxxxx/",

《Python与量化投资从基础到实战》PDF及代码+《量化投资以Python为工具》PDF及代码

下载:https://pan.baidu.com/s/1NU_53IT-ZPhwACk6sJphAw 更多资料:https://pan.baidu.com/s/1bl6Q4Ex2_TC242IMnGQPRw <Python与量化投资:从基础到实战(王小川)>PDF,562页,带书签目录,文字可以复制:配套源代码.<量化投资以Python为工具(蔡立耑 )>PDF,550页:配套源代码. <Python与量化投资:从基础到实战>主要讲解如何利用Python进行量化投资,包