sass 不是使用分号和大括号
scss 和 css 格式类似
使用 $ 标识
$highlight-color: #fff;
块中定义块中使用
可以在规则块之外存在
属性标准值可存在的地方就可以使用变量
中划线和下划线都是可以接受的方式
body p {
background-color: black;
text-size: 10px;
}
body h1 {
background-color: black;
text-size: 20px;
}
使用嵌套:
body{
background-color: black;
p {
text-size: 10px;
}
h1 {
text-size: 20px;
}
}
&
注意嵌套,防止生成的 CSS 太大
: 直接子元素
+: 同层相邻组合选择器
~: 同层全体组合选择器
nav {
border: {
style: solid;
width: 1px;
color: #ccc;
}
}
CSS:
@import
: 允许一个在 CSS 文件中导入其他的 CSS 文件,后果是只有执行到 @import 才会去下载 CSS 文件
SASS:
@import
: 在生成 CSS 时就相关文件导入进来,不需要后缀
- 如何编写
被导入
的 SASS 文件 - 集中导入 SASS 文件的方法
- 如何在 SASS 中使用 CSS 的原生 @import
不需要被生成的局部文件
- 以下划线
开头,导入时使用绝对名称
最后一处覆盖前面的值
!default
: 如果变量
被声明赋值了,就是用声明的值,否则使用默认值
@import
允许被写在 CSS 规则内
被导入的变量和混合器只在规则范围内有效
- 导入文件以
.css
结尾 - 导入文件是一个 URL 地址
- 被导入文件的名字是 CSS URL() 值
标准注释:
/* ... */
会出现在生成的 CSS 中
静默注释:
// ...
不会出现在生成的 CSS 中
代码的重用
@mixin
-- 定义一个混合器
@include
-- 使用混合器
存在一组能够用一个名字描述的属性
混合器在样式表中使用
类名在 HTML 中使用
- 属性
- CSS 规则
- 标识符
**如果一个混合器只包含 CSS 规则而不包含属性,则混合器可以在文档顶部调用
例子:
@mixin link-colors($normal, $hover, $visited) {
color: $normal;
&:hover { color: $hover; }
&:visited { color: $visited; }
}
a {
@include link-colors(blue, red, green);
}
键值对传参:
$name: value
@mixin link-colors($normal, $hover: $normal, $visited: $normal) {
color: $normal;
&:hover { color: $hover; }
&:visited { color: $visited; }
}
选择器继承指的是一个选择器可以继承为另一个选择器的样式
当一个元素拥有的类表明它属于另一个类时
- 继承 HTML 元素
- 继承生成的 CSS 代码相对较少
- 继承遵从 CSS 层叠的规则