sass

sass概述

            sass是一个预编译的css语言,它是使用ruby语言写的,和它一样的预编译语言还有less,它是使用js写
            的。sass的环境之前是ruby环境,但是由ruby并了python,所以它可以运行在python环境上,这个些
            内容并不能直接使用,因为它属于预编译css,没有进行编译是不能被使用的。编译完还是css,那么我
            们知道它有个编译过程并比损耗效率,那么它的优势在哪?

            预编译css的优势就是它可以减少你的css代码的书写量,并编译出对应的简洁的css代码。

        常用的预编译css

            sass (底层采用ruby书写)循环可以支持所有类型
            less (底层采用js书写) 循环只支持数值类型
            stylus (底层采用的是js (功能单一) 它是以缩进来区分对应的层级)

        sass的常用俩种形式  

            sass 后缀(以缩进来做为区分 没有{} ;)
            scss 后缀(类似于css的区分)

        sass的编译环境

        node支持python 运用node环境来运行sass

            安装
                
    npm install sass -g

 

            编译
                
    sass 需要编译的文件 编译后的文件

 

            监听编译
               
    sass --wacth 需要编译的文件:编译后的文件

 

        vscode的插件来帮助我们编译sass

            easy sass 扩展
                保存后自动编译

 

 

        sass入门

            官方网站:https://www.sass.hk/

            变量定义 使用$进行变量定义(*)

               
                $color:red;
                div{
                   background-color:$color;
                }

       

               div {
                   background-color: red;
                }
  

            选择器嵌套 使用&表示当前选择器(*)

              
              div{
                    background-color:$color;
                    a,b{
                        text-align: center;
                    }
                    &:hover{
                        color: $color;
                    }
                }

 

              
                div a, div b {
                    text-align: center;
                }
                div:hover {
                    color: red;
                }

 

            样式嵌套

               
                span{
                    border: 1px solid #ccc {
                        bottom: none;
                    };
                }

              

                div span {
                    border: 1px solid #ccc;
                    border-bottom: none;
                }

 

            支持运算符 + - * / %

              
                $size:10px;
                p{
                    font-size: $size * 5 / 10 + 20 % 1;
                }
                #box{
                    font-size: 10px + 10;
                }

 

              
                p {
                    font-size: 5px;
                }
                #box {
                    font-size: 20px;
                }

 

            支持if else判断

               
                #content{
                    @if $size>5 {font-size: $size - 5;}
                    @if $size - 5>5 {color:red}
                    @else if $size - 5<5{color:blue}
                    @else {color:green}
                }

 

               
                #content {
                    font-size: 5px;
                    color: green;
                }

 

            支持for循环 (插值表达式 #{})

              
               //普通for循环
                @for $i from 1 through 3 {
                    .item-#{$i} { width: 2em * $i; }
                }
                //for each循环
                $list : 1,2,3,4,5;
                @each $var in $list {
                    .icon-#{$var}{
                        font-size:$var * 5px ;
                    }
                }

 

               
                .item-1 {
                    width: 2em;
                }
                .item-2 {
                    width: 4em;
                }
                .item-3 {
                    width: 6em;
                }
                .icon-1 {
                    font-size: 5px;
                }
                .icon-2 {
                    font-size: 10px;
                }
                .icon-3 {
                    font-size: 15px;
                }
                .icon-4 {
                    font-size: 20px;
                }
                .icon-5 {
                    font-size: 25px;
                }

 

            支持while循环

              
               $i: 6;
                @while $i > 0 {
                    .item-#{$i} { width: 2em * $i; }
                    $i: $i - 2;
                }

 

              
                .while-6 {
                    width: 12em;
                }
                .while-4 {
                    width: 8em;
                }
                .while-2 {
                    width: 4em;
                }

 

            注释 /**/ 多行注释 // 单行注释

                // 不会编译到css文件 /**/会编译到css文件

            混入器 mixin (*)

              
               //混入器
                @mixin borderStyle {
                    border: 1px solid red;
                }
                .box{
                    @include borderStyle()
                }
                //传参的混入器 支持默认参数的
                @mixin borderStyle1($a:1px,$b:solid,$c:green) {
                    border: $a $b $c;
                }
                #box{
                    // @include borderStyle1(1px,solid,red)
                    @include borderStyle1(2px)
                }

 

               
                .box {
                    border: 1px solid red;
                }
                #box {
                    border: 2px solid green;
                }

 

            方法 返回值的形式

               
                 @function reduce($a){
                    @return $a+10;
                }
                #hello{
                    width: reduce(10px);
                }

 

               
                #hello {
                    width: 20px;
                }

 

            继承 extend(复用 *)

              
                #hi{
                    //继承hello的内容
                    @extend #hello;
                    height: 20px;
                }

 

                
                #hello, #hi {
                    width: 20px;
                }
                #hi {
                    height: 20px;
                }

 

            导入 (*)

                
                @import './mixin.scss';
                #box{
                    @include borderStyle1()
                }

 

              
                #box {
                    border: 1px solid green;
                }

 

gulp

            gulp是一个自动化构建工具(构建环境 将代码打包 基于文件流的形式) (outer了),webpack ---vite。
            https://www.gulpjs.com.cn/
            都是基于node环境运行的。用到模块来构建环境
            
            npm install gulp -g
            npm install webpack -g
            npm insatll vite -g

 

posted @ 2022-08-31 20:07  一对7  阅读(57)  评论(0编辑  收藏  举报