天天看点

vue相关 scss语法基础

-----------------------------------------vue相关 scss语法基础------------------------------------------------------------

高效css预编译语言  js方式书写css   同类 less stylus

基于ruby语言开发

文件区别

.sass  语法没有花括号 分号

 .scss文件内支持css语法  √

     但是目前没有任何浏览器支持这种语言,所以,需要编写完成之后,转成css

     借助node环境下的gulp工具的gulp-sass插件,实现sass转css的功能

 scss语法

 //注释不会被编译,会被编译

 单值变量

 $c:red;

 div{

     width:100px;

     color: $c;

 }

 多值变量

 $c:red yellow;

 div{

     width:100px;

     color: nth($c, 1);            从1开始

 }

数组型变量和 @each  in

  list变量,类似于js的数组

$l:(1,100,20,red)(2,50,30,yellow)(3,150,10,green)(4,200,40,blue)(5,30,10,pink);

@each $i,$w,$h,$c in $l {

    .box#{$i}{                          选择器有变量 用#{}包裹

        width:$w + px;

        height:$h + px;

        color:$c;

    }

}

对象型变量

map变量,类似于js的对象

$m:(h1:30px,h2:20px,h3:10px);

@each $key,$val in $m {

    #{$key}{

        font-size:$val;

    }

}

选择器的嵌套

.list{

    li{border: solid 1px black;

        &:hover{background: red;}      伪类选择器

    }

    .last{border:none;}

}

属性的嵌套

.box{

    border:{

        left:{width:10px;color:red;style:solid;}

        right:{width:20px;color:yellow;style:solid;}

    }

}

4.混合mixin,类似于js的函数,但是没有返回值

@mixin abc ($deg){                     封装

    -webkit-transform: $deg;

    -moz-transform: $deg;

    -ms-transform: $deg;

    -o-transform: $deg;

    transform: $deg;

}

.box{

    @include abc(rotate(90deg));       调用  传参

}

.box1{

    @include abc(translate(100px));

}

5. 继承

.box1{width:100px;height:100px;background: red;}

.box2{

    @extend .box1;        继承

    background: yellow;   调整

}

6. 运算

https://blog.csdn.net/hpasdabc?spm=1000.2115.3001.5343

$c:red;

.box{

    color:$c 50;

    width:100*2 + px;

    height:100px / 16px * 1rem;        转rem 封装运算部分

    margin:50px / 16px * 1rem;

}

@function pTr($px){                 封装

        @return $px / 16px * 1rem;   默认1rem=16px

    }

    .box{

        width:pTr(89px);           调用 传参

        height:pTr(89px);

    }

    8.引入外部scss并合并

@import "style.scss";

继续阅读