官方文档解释 SCSS 与 Sass 异同
。。。反正这个东西都这么叫,sasscss
快速入门参考 sass
中文文档,大量的语言描述与讲解会被省略。浏览器
/* sass 使用 $ 符号来标识变量 */
$basic-border: 1px solid black;
$highlight-color: #F90;
$nav-color: #F90;
nav {
$width: 100px;
width: $width; /* $width 只能在 nav 内部使用,声明时不限位置,引用时受限与声明时的位置 */
color: $nav-color;
}
复制代码
$highlight-color: #F90;
.selected {
border: 1px solid $highlight-color;
}
$highlight-border: 1px solid $highlight-color;
.selected {
border: $highlight-border;
}
复制代码
/* 下划线中划线通用 */
$link-color: blue;
a {
color: $link_color;
}
复制代码
/* 下划线中划线通用 */
#content {
article {
h1 { color: #333 }
p { margin-bottom: 1.4em }
}
#content aside { background-color: #EEE }
}
/* 编译后 */
#content article h1 { color: #333 }
#content article p { margin-bottom: 1.4em }
#content aside { background-color: #EEE }
复制代码
article a {
color: blue;
&:hover { color: red }
}
/* 编译后 */
article a { color: blue }
article a:hover { color: red }
复制代码
nav, aside {
a {color: blue}
}
/* 编译后 */
article a { color: blue }
article a:hover { color: red }
复制代码
article > section { border: 1px solid #ccc } /* 直接子元素选择器> */
header + p { font-size: 1.1em } /* 同层相邻组合选择器+ */
article ~ article { border-top: 1px dashed #ccc } /* 同层全体组合选择器~ */
/* 嵌套使用~ */
article {
~ article { border-top: 1px dashed #ccc }
> section { background: #eee }
dl > {
dt { color: #333 }
dd { color: #555 }
}
nav + & { margin-top: 0 }
}
复制代码
nav {
border: 1px solid #ccc {
left: 0px;
right: 0px;
}
}
nav {
border: 1px solid #ccc;
border-left: 0px;
border-right: 0px;
}
复制代码
/* 无太大差异 */
@import './base.scss'
复制代码
/* 反复声明一个变量,只有最后一处声明有效且它会覆盖前边的值 */
$link-color: blue;
$link-color: red;
a {
color: $link-color; /* red */
}
/* default 若是有重复声明则会阻止重复声明 */
$link-color: blue;
$link-color: red !default;
a {
color: $link-color; /* blue */
}
复制代码
/* _blue-theme.scss */
aside {
background: blue;
color: white;
}
复制代码
.blue-theme {@import "blue-theme"}
/* 至关于 */
.blue-theme {
aside {
background: blue;
color: #fff;
}
}
复制代码
原生的 css
也有 @import
但这直接写在文件中的一段代码,浏览器解析
css
文件时,遇到了 @import
会暂停继续解析后面的代码转而去向服务
器发起一个请求,因此在 .scss
文件中 @import './xxx.css'
会被当成
原生 css
的 @import
,若是你想用 sass
的导入,就必须把你的文件
改为 xxx.scss
sass