文档章节

Sass指南:Sass前世今生和如何安装以及使用Webstorm直接支持编写

G
 GeCoder
发布于 2018/04/19 10:57
字数 2270
阅读 212
收藏 6

Sass简易指南

 

什么是Css预处理器?

 

CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。

 

通俗的说,“CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用。CSS 预处理器为 CSS 增加一些编程的特性,无需考虑浏览器的兼容性问题”,例如你可以在 CSS 中使用变量、简单的逻辑程序、函数(如右侧代码编辑器中就使用了变量$color)等等在编程语言中的一些基本特性,可以让你的 CSS 更加简洁、适应性更强、可读性更佳,更易于代码的维护等诸多好处。

 

CSS 预处理器语言:

- Sass(SCSS)

- LESS

- Stylus

- Turbine

- Swithch CSS

- CSS Cacheer

- DT CSS

 

什么是 Sass?

 

官方定义

Sass 是一门高于 CSS 的元语言,它能用来清晰地、结构化地描述文件样式,有着比普通 CSS 更加强大的功能。

Sass 能够提供更简洁、更优雅的语法,同时提供多种功能来创建可维护和管理的样式表。

 

Sass 前世今生

Sass 是最早的 CSS 预处理语言,有比 LESS 更为强大的功能,不过其一开始的缩进式语法(Sass 老版本语法,后面课程会详细介绍 )并不能被大众接受,不过由于其强大的功能和 Ruby on Rails 的大力推动,还是有很多开发者选择了 Sass。

 

Sass 是采用 Ruby 语言编写的一款 CSS 预处理语言,它诞生于2007年,是最大的成熟的 CSS 预处理语言。最初它是为了配合 HAML(一种缩进式 HTML 预编译器)而设计的,因此有着和 HTML 一样的缩进式风格。

 

为什么Sass早期不如 LESS 普及?

虽然缩进式风格可以有效缩减代码量,强制规范编码风格,但它一方面并不为大多数程序接受,另一方面无法兼容已有的 CSS 代码。这也是 Sass 虽然出现得最早,但远不如 LESS 普及的原因。

 

Sass 和 SCSS 有什么区别?

Sass 和 SCSS 其实是同一种东西,我们平时都称之为 Sass,两者之间不同之处有以下两点:

第一,文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名

第二,语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似。

 

先来看一个示例:

 

Sass 语法

```

$font-stack: Helvetica, sans-serif //定义变量

$primary-color: #333 //定义变量

 

body

font: 100% $font-stack

color: $primary-color

```

Scss 语法

```

$font-stack: Helvetica, sans-serif;

$primary-color: #333;

 

body {

font: 100% $font-stack;

color: $primary-color;

}

```

编译出来的 CSS

 

```

body {

font: 100% Helvetica, sans-serif;

color: #333;

}

```

 

如何安装Sass(windows版)?

 

第一步:安装ruby

 

在 Windows 平台下安装 Ruby首先需要有 Ruby 安装包,大家可以到 Ruby 的官网(http://rubyinstaller.org/downloads)下载对应需要的 Ruby 版本。

 

Ruby 安装文件下载好后,按照应用软件安装步骤进行安装。在安装过程中,个人建议将其安装在 C 盘下,在安装过程中选择第二个选项(不选中,就会出现编译时找不到Ruby环境的情况),如下图所示:

 

当你的电脑安装好 Ruby 之后,接下来就可以安装 Sass 了。


虽然在windows下安装 Sass 有多种方法,但是这几种方法都是非常的简单,只需要在你的命令终端输入一行命令即可。当然最好首先进入ruby的命令行模式,如下图:

第二步:安装Sass

 

1、通过命令安装 Sass

打开ruby命令行,输入如下指令:

执行gem install sass命令。

2. 通过Compass安装Sass

除了使用 gem 命令来安装 Sass 之外,还可以通过安装 compass来安装 Sass,因为 Compass 是基于 Sass 开发的一个框架。也就是说,你安装了 Compass,也就同时安装好了 Sass。同样的在你的命令终端输入下面的命令:

执行gem install compass命令。

 

3. 通过淘宝镜像安装sass

除了下载 Sass 安装包到本地安装之外,碰到网络原因无法安装时还可以使用淘宝 RubyGems 镜像安装 Sass。只是我们需要通过 gem sources 命令来配置源,先移除默认的 https://rubygems.org 源,然后添加淘宝的源 https://ruby.taobao.org:

第一步:移除默认的源

gem sources --remove https://rubygems.org/

第二步:指定淘宝的源

gem sources -a https://ruby.taobao.org/

第三步:查看指定的源是不是淘宝源

gem sources -l

返回结果如下:

*** CURRENT SOURCES ***

https://ruby.taobao.org

请确保只有 ruby.taobao.org。如果无误之后,执行下面的命令:

gem install sass

第三步:查测及更新Sass

 

查测Sass

通过上面的几种方法都可以安装 Sass,但是,我们要如何确认自己是否安装成功了呢?其实很简单,只需要通过下面的命令即可:

sass -v

如果在你的命令终端能看到类似这样的信息就表示你的电脑安装已成功。也就是说可以正常的使用 Sass 了。

 

更新 Sass

维护 Sass 的团队会不断的为 Sass 添加新的功能,那么如何确保自己已安装的 Sass 也具有这些新的功能特性呢?不会是卸载了重新安装吧(虽然安装也就是一个命令的事情)?

 

其实不需要这么麻烦,只需要在命令终端执行gem update sass 命令,这个时候你看到类似下面这样的信息,表示你的 Sass 已更新到最新版本。

 

第四步:支持sass的开发环境设置

1. 让sublime支持sass的开发

在sublime中使用 ctrl+shift+p 打开 PackageControl,然后输入install 选择第一项 Install Package,最后输入sass 搜索sass的插件 安装 Sass和 Sass Build两个插件,如下图所示:

 

sass插件支持sass的语法高亮显示

sass build支持sass文件或者scss的自动编译,可以自动生成 css代码,编译快捷键ctrl+b

 

2. 使用Webstorm 可以直接支持sass的编写

 

Sass或者Scss文件的编写和编译

 

Sass 语法格式

这里说的 Sass 语法是 Sass 的最初语法格式,他是通过 tab 键控制缩进的一种语法规则,而且这种缩进要求非常严格。另外其不带有任何的分号和大括号。常常把这种格式称为 Sass 老版本,其文件名以“.sass”为扩展名。

 

来看一个 Sass 语法格式的简单示例。

 

假设我们有一段这样的 CSS 代码:

body {

font: 100% Helvetica, sans-serif;

color: #333;

}

 

现在用 Sass 的语法格式来编写:

$font-stack: Helvetica, sans-serif

$primary-color: #333

body

font: 100% $font-stack

color: $primary-color

 

在整个 Sass 代码中,我们没看到类似 CSS 中的大括号和分号。

注:这种语法格式对于前端人员都不太容易接受,而且容易出错。

 

SCSS语法格式

SCSS 是 Sass 的新语法格式,从外形上来判断他和 CSS 长得几乎是一模一样,代码都包裹在一对大括号里,并且末尾结束处都有一个分号。其文件名格式常常以“.scss”为扩展名。

 

同样的这段 CSS 代码:

body {

 font: 100% Helvetica, sans-serif;

 color: #333; }

 

我们使用 SCSS 语法格式将按下面这样来书写:

$font-stack: Helvetica, sans-serif;

$primary-color: #333;

 

body {

 font: 100% $font-stack;

 color: $primary-color;

}

 

这样的语法格式对于从事前端工作的同学来说更易于接受,这也是 SCSS 为什么更被前端人员青眯的原因。

 

不管是 Sass 的语法格式还是 SCSS 的语法格式,他们的功能都是一样的,不同的是其书写格式和文件扩展

名不同,来看一个简单的对比图:

正因为如此,有不少同学使用 Sass 新的语法规则,而文件扩展名依旧使用的是“.sass”,这也就造成血案了,编译时说编译不出来。

 

在此特别提醒新同学:“.sass”只能使用 Sass 老语法规则(缩进规则),“.scss”使用的是 Sass 的新语法规则,也就是 SCSS 语法规则(类似 CSS 语法格式)。

特别注意:由于sass编译器的原因,在编写sass或者scss文件时一定要使用utf-8编码,还有文件路径中不能使用中文和特殊字符,否则在编译成css文件时会出错。如有同学想与作者咨询交流技术问题请加群523916260。

© 著作权归作者所有

G
粉丝 12
博文 13
码字总数 16057
作品 0
长沙
私信 提问
大家觉得WebStorm如何,分析分析····

不知道大家觉得WebStorm 怎么样,我个人还比较喜欢这个IDE···· 感觉WebStorm就是为前端而生,专门为 JS 开发做了很多优化,有许多令前端工程师眼前一亮的地方,图片宽高提示、 标签重构与...

愤怒的outman
2013/07/04
753
2
Webstorm功能详解及插件推荐

Web前端开发神器——Webstorm不用多介绍,强大的智能提示只是它的一个功能特性,它还具有许多有用的特性,比如版本控制、本地历史、即时模板等。Webstorm还内置了对 SASS、NodeJS、CoffeeScr...

达斯雷马
2016/12/27
8.4K
0
WebStorm 5 发布,JavaScript 集成开发工具

WebStorm 5 发布了,WebStorm 是 JetBrains 推出的一款商业的 JavaScript 开发工具。 该版本新特性和改进包括: 1. 支持 JSDoc注解 2. JavaScript 编辑器的各种改进 3. 支持 Jade 模板 4. 支...

oschina
2012/09/07
6.3K
11
WebStorm 2017.2.2 发布,JavaScript 编辑器

WebStorm 2017.2.2 发布了。WebStorm 是 JetBrains 推出的一款商业的 JavaScript 开发工具。 主要更新内容: 在使用 webpack 时支持在 SCSS 和 Less 中进行输入 (WEB-23707 and WEB-25321) ...

达尔文
2017/08/16
1K
4
WebStorm 2019.2.1 发布,前端开发 IDE

该版本是最近发布的 WebStorm 2019.2 的第一个 bug 修复更新,除了 bug 修复之外,这个更新还带来了许多改进和特性。以下是 WebStorm 2019.2.1 中的新内容: 在 Angular 项目中,angular.jso...

afterer
今天
120
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
444
13
SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
19
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
12
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部