SCSS使用技巧-初级
🍎 插值语法#{ }
$
变量
scss
$name: button;
$new-border: border-radius; // 圆角
// 插值表达式
div > #{ $name } {
#{ $new-border }: 10px;
}
scc
div > button {
border-radius: 10px;
}
🍎🍎嵌套规则
(嵌套选择器)
scss
.container ul {
border: 1px solid #aaa;
list-style: none;
li {
float: left;
}
li > a {
display: inline-block;
padding: 6px 12px;
}
}
.container ul:after {
display: block;
content: "";
clear: both;
}
css
.container ul {
border: 1px solid #aaa;
list-style: none;
}
.container ul li {
float: left;
}
.container ul li > a {
display: inline-block;
padding: 6px 12px;
}
.container ul:after {
display: block;
content: "";
clear: both;
}
🍎🍎🍌(嵌套中的父级选择器&)
scss
.container ul {
&:after {
display: block;
content: "";
clear: both;
}
}
css
.container ul:after {
display: block;
content: "";
clear: both;
}
🍎🍎🍌🍌(嵌套组合选择器)(🚀
推荐使用这种嵌套
)
- 在嵌套规则中可以写任何
css
代码 - 包括群组选择器(
,
) - 子代选择器(
>
) - 同层相邻组合选择器(
+
) - 同层全体组合选择器(
~
)等等
scss
.container ul {
border: 1px solid #aaa;
list-style: none;
li {
float: left;
> a {
display: inline-block;
padding: 6px 12px;
}
}
&:after {
display: block;
content: "";
clear: both;
}
}
css
.container ul {
border: 1px solid #aaa;
list-style: none;
}
.container ul li {
float: left;
}
.container ul li > a {
display: inline-block;
padding: 6px 12px;
}
.container ul:after {
display: block;
content: "";
clear: both;
}
🍎🍎🍌🍌🍌 写在外层选择器右边时要特别注意,他会作用于所有嵌套的选择器上,尽量不要采用这类写法
li >{
a {
display:inline-block;
padding:6px 12px;
}
}
li > a {
display: inline-block;
padding: 6px 12px;
}
🍎🍎🍌🍌🍌🍌 (嵌套属性) (适合属性有
上下左右
的)
scss
li {
border: 1px solid #aaa {
left: 0;
right: 0;
}
margin: {
top: 0;
right: 1px;
bottom: 2px;
left: 0px;
}
}
css
li {
border: 1px solid #aaa;
border-left: 0;
border-right: 0;
margin-top: 0;
margin-right: 1px;
margin-bottom: 2px;
margin-left: 0px;
}
🍎🍎🍎 导入
SCSS
文件 (css
提供了@import
命令)
- 导入变量的优先级问题-变量默认值
- 后导入的会覆盖前边的 变量
scss
$border-color:#aaa; //声明变量
@import './基础.scss'; //引入另一个SCSS文件
.container {
border:1px solid $border-color; //使用变量
}
css
p {
margin: 0px;
}
.container {
border: 1px solid #aaa;
}
🍎🍎🍎🍌 有时候我们希望引入的某些样式不更改原有的样式,这时我们可以在引入的
css
使用变量默认值。
- 指令(
!default
只能使用于变量中)
scss
// 这是 基础.scss 的文件
$border-color: #f0f !default; //声明变量
// 这是 初级.scss 的文件
$border-color:#ff000f; //声明变量
@import './基础.scss'; //引入另一个SCSS文件
.container {
border:1px solid $border-color; //使用变量
}
css
p {
margin: 0px;
}
.container {
border: 1px solid #ff000f;
}
🍎🍎🍎🍌🍌 嵌套导入
scss
$border-color: #ff000f; //声明变量
.container {
@import "./基础.scss"; //引入另一个SCSS文件 (局部导入)
border: 1px solid $border-color; //使用变量
}
css
.container {
border: 1px solid #ff000f;
}
.container p {
margin: 0px;
}