# CSS / Sass 规范指南
## 目录
1. [术语](#terminology)
- [规则声明](#rule-declaration)
- [选择器](#selectors)
- [属性](#properties)
1. [CSS](#css)
- [文件引用](#file-import)
- [格式](#formatting)
- [属性顺序](#order)
- [注意事项](#careful)
- [注释](#comments)
- [OOCSS 和 BEM](#oocss-and-bem)
- [ID 选择器](#id-selectors)
- [JavaScript 钩子](#javascript-hooks)
1. [Sass](#sass)
- [语法](#syntax)
- [排序](#ordering-of-property-declarations)
- [变量](#variables)
- [Mixins](#mixins)
- [扩展指令](#extend-directive)
- [嵌套选择器](#nested-selectors)
## 术语
### 规则声明
我们把一个(或一组)选择器和一组属性称之为 “规则声明”。举个例子:
```css
.listing {
font-size: 18px;
line-height: 1.2;
}
```
### 选择器
在规则声明中,“选择器” 负责选取 DOM 树中的元素,这些元素将被定义的属性所修饰。选择器可以匹配 HTML 元素,也可以匹配一个元素的类名、ID, 或者元素拥有的属性。以下是选择器的例子:
```css
.my-element-class {
/* ... */
}
[aria-hidden] {
/* ... */
}
```
### 属性
最后,属性决定了规则声明里被选择的元素将得到何种样式。属性以键值对形式存在,一个规则声明可以包含一或多个属性定义。以下是属性定义的例子:
```css
/* some selector */ {
background: #f1f1f1;
color: #333;
}
```
## CSS
### 文件引用
* [建议] 使用 `link` 的方式调用外部样式
* [强制] 不允许在 `