简书原文

https://www.jianshu.com/p/e82c27aa05c7

前言

该中文手册是我在Sass中文文档的基础上编辑的,或者也可以理解为就是Sass中文文档的翻版。之所以有这篇文章的原因还是在于Sass中文文档并没有全部翻译成中文,这样每次我查找文档的时候又需要对其再理解一次,与其如此,不如我自己完善这份文档,并且加上一些我自己的理解或者注解,这样以后我查阅的时候可以更好的使用该份文档。同时,我将这篇文章公开出来,当然,如果喜欢看原文的可以去Sass官网看中文文档,这完全没有问题,不可否认,那才是正版,我只是希望我写的东西能帮助到读者,仅此而已。

考虑到写成一篇整体篇幅太大,因此将中文手册分成两篇,这篇只是大概对Sass进行介绍,下篇才是具体的语法。

大纲

1、什么是Sass?
2、为什么使用Sass?
3、Sass和SCSS的区别和联系
4、Sass的安装和使用
5、Sass的输出样式

1、什么是Sass?

Sass (Syntactically Awesome StyleSheets)
CSS(Cascading Style Sheets)(层叠样式表)
Sass 是对 CSS 的扩展,让 CSS 语言更强大、优雅。 它允许你使用变量、嵌套规则、 mixins、导入等众多功能, 并且完全兼容 CSS 语法。 Sass 有助于保持大型样式表结构良好, 同时也让你能够快速开始小型项目, 特别是在搭配 Compass 样式库一同使用时。

个人理解:
SASS的出现其实就是换一种方式写CSS,让CSS的编写过程更倾向于一种工程而不是仅仅是样式表,或者正如其名字一样,很棒的具有语法的样式表。

2、为什么使用Sass?

首先,Sass本质上其实就是CSS,只不过使用的方式不同于普通css罢了;其次,Sass在 CSS 语言基础上添加了扩展功能(比如变量、嵌套 (nesting)、混合 (mixin)等等)。
总而言之,Sass在css的基础上,让css变得可读写性更好,使用更加方便,对项目的工程化更加友好。

3、Sass和SCSS的区别和联系

Sass 有两种语法。
第一种被称为 SCSS (Sassy CSS),是一个 CSS3 语法的扩充版本。
也就是说,所有符合 CSS3 语法的样式表也都是具有相同语法意义的 SCSS 文件。 另外,SCSS 理解大多数 CSS hacks 以及浏览器专属语法,例如IE 古老的 filter 语法。 这种语种语法的样式表文件需要以 .scss 扩展名。

第二种比较老的语法成为缩排语法(或者就称为 "Sass"), 提供了一种更简洁的 CSS 书写方式。
它不使用花括号,而是通过缩排的方式来表达选择符的嵌套层级,I 而且也不使用分号,而是用换行符来分隔属性。 很多人认为这种格式比 SCSS 更容易阅读,书写也更快速。使用此种语法的样式表文件需要以 .sass 作为扩展名。

任一语法都可以导入另一种语法撰写的文件中。 只要使用 sass-convert 命令行工具,就可以将一种语法转换为另一种语法:

# 将 Sass 转换为 SCSS
$ sass-convert style.sass style.scss # 将 SCSS 转换为 Sass
$ sass-convert style.scss style.sass

4、Sass的安装和使用

Sass的安装我这里就不多做介绍了,因为不同的情况不同的项目乃至不同的框架引入的方式各有不同。
当然这里还是要说一个特别好用的网站:Sass的实验室。这是Sass提供的网页,通过这个你就可以不需要项目的前提下实验各种Sass的语法,并且对比Sass以及由Sass编译后的css.

5、Sass的输出样式

虽然Sass输出的默认CSS样式非常好,并且反映了文档的结构,但是品味和需求是不同的,所以Sass支持其他几种样式。
通过设置:style选项或使用—style命令行标志,Sass允许您在四种不同的输出样式之间进行选择。

5.1、嵌套

嵌套样式是默认的Sass样式,因为它反映了CSS样式的结构和样式化的HTML文档。
嵌套样式在查看大型CSS文件时非常有用:它允许您轻松掌握文件的结构,而无需实际读取任何内容。
每个属性都有自己的行,但是缩进不是常量。每个规则都是根据嵌套的深度缩进的。例如:

#main {
color: #fff;
background-color: #000; }
#main p {
width: 10em; } .huge {
font-size: 10em;
font-weight: bold;
text-decoration: underline; }

5.2、展开

展开是一种更典型的人工CSS样式,每个属性和规则占用一行。属性在规则中是缩进的,但是规则没有以任何特殊方式缩进。例如:

#main {
color: #fff;
background-color: #000;
}
#main p {
width: 10em;
} .huge {
font-size: 10em;
font-weight: bold;
text-decoration: underline;
}

5.3、紧凑

紧凑样式比嵌套或展开样式占用更少的空间。它还将焦点更多地吸引到选择器,而不是它们的属性。每个CSS规则只占用一行,其中定义了该行上的每个属性。嵌套规则彼此相邻,没有换行符,而单独的规则组之间有换行符。例如:

#main { color: #fff; background-color: #000; }
#main p { width: 10em; } .huge { font-size: 10em; font-weight: bold; text-decoration: underline; }

5.4、压缩

压缩样式占用尽可能少的空间,除了分隔选择器和文件末尾的换行符所必需的空白之外,没有其他空白。它还包括一些其他的小压缩,例如为颜色选择最小的表示。这并不是为了让人读懂。例如:

#main{color:#fff;background-color:#000}#main p{width:10em}.huge{font-size:10em;font-weight:bold;text-decoration:underline}

  

Sass(SCSS)中文手册——入门的更多相关文章

  1. pgpool-II 4.3 中文手册 - 入门教程

    本章解释了如何开始使用 Pgpool-II. 安装 在本节中,我们假设您已经安装了 Pgpool-II 与 PostgreSQL 集群. 你的第一个复制(Replication) 在本节中,我们将解释 ...

  2. wxPython中文教程入门实例

    这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下     wxPython中文教程入门实例 wx.Window 是一个基类 ...

  3. 前端利器:SASS基础与Compass入门

    SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让css看起来更像是一门语言,这种特性也被称为“cs ...

  4. [转]前端利器:SASS基础与Compass入门

    [转]前端利器:SASS基础与Compass入门 SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让 ...

  5. CSS预处理器 Less Sass,Scss 编译 Sourcemap调试

    sass.less和stylus的安装使用和入门实践     SASS用法指南    Sass Basics CSS预处理器 css preprocessor 预处理器即preprocessor,预处 ...

  6. PHP HTML DOM 解析器 中文手册

    简单的PHP HTML DOM 解析器 中文手册 | PHP Simple HTML DOM Parser中文手册 目录 快速入门 如何创建HTML DOM 对象? 如何查找HTML元素? 如何访问H ...

  7. Flask 中文手册 0.10 文档

    Flask 中文手册 0.10 文档 欢迎使用 Flask 欢迎阅读 Flask 文档. 本文档分为几个部分.我推荐您先从 安装 开始,之后再浏览 快速入门 章节. 教程 比快速入门更详细地介绍了如何 ...

  8. TensorFlow开发者证书 中文手册

    经过一个月的准备,终于通过了TensorFlow的开发者认证,由于官方的中文文档较少,为了方便大家了解这个考试,同时分享自己的备考经验,让大家少踩坑,我整理并制作了这个中文手册,请大家多多指正,有任何 ...

  9. sass/scss 和 less的区别

    一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...

随机推荐

  1. 正确地在QML应用中使用fontsize

    我们知道我们有时须要显示text文本.可是,在QML应用中.我们应该怎样选择font的大小呢?在今天的这篇文章中,我们将展示在Ubuntu平台中的不同文字的大小.我们能够通过FontUtils来帮我们 ...

  2. Atcoder ABC 070 B、C、D

    B - Two Switches Time limit : 2sec / Memory limit : 256MB Score : 200 points Problem Statement Alice ...

  3. 威佐夫博奕(Wythoff Game)

    出现奇异局面,先取者必败,反之后拿者必败 奇异局面:(0,0) (1,2) (3,5) (4,7) (ak,bk) ak=bk-k,ak=k*(1+√5)/2: 代码实现(poj 1067): #in ...

  4. HTML中行内元素与块级元素有哪些及区别

    二.行内元素与块级元素有什么不同? 块级元素和行内元素的区别是,块级元素会占一行显示,而行内元素可以在一行并排显示. 通过样式控制,它们可以相互转换. 1.尺寸-块级元素和行内元素之间的一个重要的不同 ...

  5. hdu 1384 Intervals (差分约束)

    /* 给你 n 个区间 [Ai, Bi],要求从每一个区间中至少选出 Ci 个数出来组成一个序列 问:满足上面条件的序列的最短长度是多少? 则对于 不等式 f(b)-f(a)>=c,建立 一条 ...

  6. BZOJ 1027 JSOI2007 合金 计算几何+Floyd

    题目大意:给定一些合金,选择最少的合金,使这些合金能够按比例合成要求的合金 首先这题的想法特别奇异 看这题干怎么会想到计算几何 并且计算几何又怎么会跟Floyd挂边 好强大 首先因为a+b+c=1 所 ...

  7. Android开发经验一判断当前屏幕是全屏还是非全屏

    public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView ...

  8. SQL数值转字符串保留指定小数位

    IF EXISTS ( SELECT * FROM sysobjects WHERE xtype = 'fn' AND name = 'fn_NumberFormat' ) BEGIN DROP FU ...

  9. golang md5

    package main import ( "crypto/md5" "encoding/hex" "fmt" "io" ...

  10. HML5

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