Sass入门介绍

CSS预处理器,用一种专门的语言进行页面Web样式设计,编译生成正常的CSS文件以供使用,可以让CSS更加简洁、适应性更强、可读性更佳、更易于代码的维护。

优秀的CSS预处理器语言包括Sass、LESS、Stylus等,本文主要介绍Sass。

Sass是最成熟、稳定、强大、专业的CSS扩展语言。

Sass的两种文件后缀

.sass

这种后缀的Sass文件使用类Ruby的语法,如下,属性之间通过换行分割,而不是分号。这种语法对于我这种属性C++、C等后端语言的前端开发者来说有点不太友好~~~

h1
  color: #000
  background: #fff

.scss

幸好Sass在3.0版本中引入Scss语法,这种语法是CSS语法的超集,如下,这种语法我就比较喜欢了!

h1 {color: #000; background: #fff}

两种语法没有好坏之分,如果你习惯Python或者Ruby,那Sass对你来说无疑是更好的选择,更对于正统的前端开发者来说,应该会和我一样喜欢Scss语法了。

当然你也可以在一个项目中混合使用两种语法,但注意,不要在一个文件中混合使用两种语法。

两种文件之间的转换也很简单,如下,哪里不会转哪里,so easy~~~

sass-convert main.scc main.sass

Sass安装

安装Ruby

对于使用Windows是我来说,这一步再简单不过了。从这里 下载相应版本的Ruby进行傻瓜安装即可。由于要在命令行使用Ruby,安装时要把Ruby可运行文件加载到PATH里。命令行输入ruby -v 检查Ruby是否安装成功。

Ruby安装完成之后,gem也就安装好了,这就和安装好node.js之后,npm就安装好了一样。

由于国内网络的原因,Ruby原有的sources经常间歇性的链接不上,所以我们首先修改Ruby sources,命令如下:

//移除原有的sources
gem sources --remove https://rubygems.org/
//添加国内淘宝的sources
gem sources -a https://ruby.taobao.org/
//如果上面那个失败的话,可以试试下面这个中山大学的sources(感谢慕课小伙伴提供)
gem sources -a http://mirror.sysu.edu.cn/rubygems/
//检查
gem sources -l

安装sass

gem install sass
//检查sass是否安装成功
sass -v

//也可以指定需要安装的sass的版本,如下:
gem install sass --version=3.3.0
//卸载某一个版本的sass
gem uninstall sass --version=3.3.0

Sass语法介绍(基础篇)

变量

sass的变量使用$符号定义

$headline-ff: Braggadocio, Arial, Verdana, Helvetica, sans-serif;
$main-sec-ff: Arial, Verdana, Helvetica, sans-serif;

变量的使用:

.headline {
  font-family: $headline-ff;
}

.main-sec {
  font-family:$main-sec-ff;
}

Sass也提供了很方便的嵌套语法,如下:

.main-sec {
  font-family:$main-sec-ff;
  .headline {
    font-family: $main-sec-ff;
  }
}

这种用法相当于下面的写法:

.main-sec {
  font-family:$main-sec-ff;
}

.main-sec .headline{
  font-family:$main-sec-ff;
}

但是对于hover则会出现问题,比如:

a {
  :hover {
    color:blue;
  }
}

它生成的css文件是下面这样的,显然这种结果不符合我们的预期

<!-- a后面有一个空格 -->
a :hover { 
  color:blue;
}

为了解决这个问题,Sass提供了父选择器&,如下:

a {
  &:hover {
    color:blue;
  }
}

我们一般将变量定义放在一个专门的文件里,比如_variables.scss(加下划线表明是一个局部文件,因为它不需要编译生成对应的CSS文件),在需要使用变量的文件(宿主文件)里,只需要引入这些变量即可,如下:

@import "variables";

Sass里的@import 和CSS里原生的@import

Sass的@import和CSS里原生的@import 指令的不同,CSS里原生的@import指令有两大弊端:

  1. 必须放在代码最前面,否则不起作用。

  2. 对性能不利。

    比如a引用b,需要浏览器把a下载下来,解析渲染a的时候读到a中@import "b"的指令的时候才会去下载b,此时浏览器处于阻塞状态,延迟页面渲染时间。

而Sass重新定义了@import指令的功能,它在编译阶段将被引用文件合并输出到了相应的CSS文件,而且@import指令可以用在文档的任何地方。

当然,如果你非要使用CSS原生的@import也不是没有可能,一切都有既定的规则,如果满足下面4个条件中的任何一个,Sass就会认为你想使用CSS原生的@import。

  1. 当@import后面的文件名以.css结尾的时候
  2. 当@import后面跟的是以http://开头的字符串的时候
  3. 当@import后面跟的是一个url()函数的时候
  4. 当@import后面带有media queries的时候

从上面的@import指令可以看到,我们没有给"variables"文件指定后缀名,这是基于Sass的既定规则:

  1. 没有文件后缀名的时候,Sass会添加.scss或者.sass
  2. 统一目录下,局部文件和非局部文件不能重名(所有文件都不能重名)

Sass注释

Sass支持下面这两种格式的注释,区别在于第二种格式的注释在编译时会生成的对应的css文件里。

//这是注释
/* 这也是注释*/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容