Sass(三)快速入门1-使用变量;嵌套CSS 规则(后代选择器、父选择器&、群组选择器、组合选择器> +和~、嵌套属性);导入SASS文件(使用sass部分文件、默认变量值);
总结:
变量
- 变量命名
- 使用中划线的方式更为普遍,这也是
compass
和本文都用的方式。- 中划线命名的内容和下划线命名的内容是互通的,除了变量,也包括对混合器和Sass函数的命名。但是在
sass
中纯css
部分不互通,比如类名、ID或属性名。嵌套CSS规则
后代选择器
- 把父选择器(
#content
)通过一个空格连接到子选择器的前边(article
和aside
)形成(#content article
和#content aside
)父选择器&
article a { color: blue; :hover { color: red } }
你想把这条规则应用到超链接自身,而后代选择器的方式无法帮你实现。
article a { color: blue; &:hover { color: red } }
当包含父选择器标识符的嵌套规则被打开时,它不会像后代选择器那样进行拼接,而是
&
被父选择器直接替换:article a { color: blue } article a:hover { color: red }
群组选择器
css写法会让你在群组选择器中的每一个选择器前都重复一遍容器元素的选择器:
.container h1, .container h2, .container h3 { margin-bottom: .8em }
当
sass
解开一个群组选择器规则内嵌的规则时,它会把每一个内嵌选择器的规则都正确地解出来:.container { h1, h2, h3 { margin-bottom: .8em} }
对于内嵌在群组选择器内的嵌套规则,处理方式也一样:
nav, aside { a { color: blue} }
首先
sass
将nav
和a``aside
和a
分别组合,然后将二者重新组合成一个群组选择器:nav a, aside a { color: blue}
组合选择器>、+和~
子组合选择器>
- 选择一个元素的直接子元素。
相邻组合选择器
+
选择
header
元素后紧跟的p
元素:header + p { font-size: 1.1em }
全体组合选择器
~
,
选择所有跟在
article
后的同层article
元素,不管它们之间隔了多少其他元素:article ~ article { border-top: 1px dashed #ccc }
嵌套属性
nav { border: { style: solid; width: 1px; color: #ccc; } }
嵌套属性的规则是这样的:把属性名从中划线-的地方断开,在根属性后边添加一个冒号:,紧跟一个
{ }
块,把子属性部分写在这个{ }
块中。导入sass文件
简介
css``@import
规则,它允许在一个css
文件中导入其他css
文件。然而,后果是只有执行到@import
时,浏览器才会去下载其他css
文件,这导致页面加载起来特别慢。sass
也有一个@import
规则,但不同的是,sass
的@import
规则在生成css
文件时就把相关文件导入进来。这意味着所有相关的样式被归纳到了同一个css
文件中,而无需发起额外的下载请求。- 使用
sass
的@import
规则并不需要指明被导入文件的全名使用sass部分文件
sass
局部文件的文件名以下划线开头sass
就不会在编译时单独编译这个文件输出css
,而只把这个文件用作导入。- 当你
@import
一个局部文件时,还可以不写文件的全名,即省略文件名开头的下划线。
- 举例来说,你想导入
themes/_night-sky.scss
这个局部文件里的变量,你只需在样式表中写@import
"themes/night-sky";
。默认变量值
!default
标签$fancybox-width: 400px !default; .fancybox { width: $fancybox-width; }
1. 使用变量;
1. 使用变量;
sass
让人们受益的一个重要特性就是它为css
引入了变量。你可以把反复使用的css
属性值 定义成变量,然后通过变量名来引用它们,而无需重复书写这一属性值。或者,对于仅使用过一 次的属性值,你可以赋予其一个易懂的变量名,让人一眼就知道这个属性值的用途。
sass
使用$
符号来标识变量(老版本的sass
使用!
来标识变量。改成 是 多 半 因 为 ‘ ! h i g h l i g h t − c o l o r ‘ 看 起 来 太 丑 了 。 ) , 比 如 ‘ 是多半因为`!highlight-color`看起来太丑了。),比如` 是多半因为‘!highl