SASS

56 阅读1分钟

记录:方便后续能快速学习并运用

1 变量

使用$符号来标识变量

$div-color: #F90;

div{
    color:$div-color
}

2 嵌套

#container{
    div{
        color:red;
    }
}

2.1 父选择器的标识符&

&表示父级名称

.container {
    &:hover{
        color:red;
    }
}

2.2 # 子组合选择器和同层组合选择器:>、+和~

+表示元素后紧跟的元素

<div class='a1'>home</div>
<div class='a2'>home</div> //生效
<div class='a2'>home</div>


a1 + a2 {
    color:red;
}

~表示元素后的所有元素

<div class='a2'>home</div> //不生效
<div class='a1'>home</div>
<div class='a2'>home</div> //生效
<div class='a2'>home</div> //生效


a1 ~ a2 {
    color:red;
}

>表示元素内部的子组件

<div class='a1'>home
    <div class='a2'>home
        <div class='a2'>home</div>
    </div>
</div>
a1 > a2 {
    color:red;
}
//感觉用处不大

2.3 嵌套属性

通过:把子属性写进{}

#container {
    border:{
        style: solid;
        width: 1px;
        color: #ccc;
    }
    background:{
        size:100%;
        color:red;
    }
}

当设置border且不要上左边框时

#container{
    border:1px solid red {
        left:0px;
        top:0px;
    }
}

3 导入SASS文件

@import 导入

3.1 默认变量值

设置过多会被覆盖,可以设置!default給变量设置为默认值

$div-color:red;
$div-color:cyan !default;
$div-color:yellow;

3.2 嵌套导入

可以将局部scss文件引入到css规则内

#container{
    @import('../../css.scss')
}

4 混合器

通过@mixin可以编写一段重复可利用的样式,通过@include引入

@mixin div-style{
    color:red;
    font-size:12px;
}

div{
    bgColor:red;
    @include div-style
}

4.1 给混合器传参

多个相同的标签,传入不同的参数,显示不同的效果

@mixin div-style($bgColor,$color){
    background:$bgColor;
    &:hover{
        color:$color
    }
}
.div1 {
    @include div-style(red,white)
}
.div2{
    @include div-style(red,cyan)
}

4.2 默认参数值

@mixin div-style($bgColor,$color:$bgColor){
    background:$bgColor;
    &:hover{
        color:$color
    }
}
.div1 {
    @include div-style(red)
}

5 使用选择器继承来精简CSS

通过@extend继续其他标签的样式

.error {
  border: 1px solid red;
  background-color: #fdd;
}
.seriousError {
  @extend .error;
  border-width: 3px;
}

Sass中文文档