美文网首页
scss入门

scss入门

作者: zzyo96 | 来源:发表于2018-12-18 11:40 被阅读0次

    写在前面

    现在很多招聘信息上都要求会scss,sass,less等预处理语言。这些语言确实比CSS用起来效率更高、更爽一些。如果你也是scss的小白,希望这篇文章可以给你一定的参考~

    注: 本篇文章默认你已经下载了gitbash、nodeJS

    1.什么是scss?scss和sass的关系

    2.如何使用scss

    3.scss常用功能

    ——————————————————————————

    1.什么是scss?scss和sass的关系

    首先介绍一下Sass:

    Sass是类css语言,语法十分简练,几乎不含{ }。 可以简单理解为去掉分号、冒号、大括号的css。但是有一些弱鸡前端攻城狮表示不用{ }看不懂,于是Sass的开发者在此基础上又提供了Scss,含括号的,然后那些弱鸡前端攻城狮表示能看懂了 - -。
    sass中文网 https://www.sasscss.com/docs/#css-extensions

    Scss和Sass的关系:

    可以简单理解成scss是sass的一个升级版本,它完全兼容Sass之前的功能。语法形式上有些不同,最主要的就是sass是靠缩进表示嵌套关系,scss是靠花括号,并且里面可以嵌套元素

    //下面代码是sass  通过缩进表示嵌套关系
    .parent
      height 100px
      .child
        height 50px
    
    // 下面是scss 含有{ }的
    .parent{
        width:100px;
        .child{
            width:50px;  //表示 .parent下的.child
        }
    }
    
    为什么要学习sass

    因为他们有很强大的功能:支持变量、嵌套、混入(Mixin)、选择器继承等(后面会讲)。他们比传统的css 用起来更有效率,所以如果你是个有追求的前端一定要学习它。

    2.如何使用scss

    创建一个目录 新建index.html 和 style.scss 然后让html通过Link标签引入style.scss
    编辑style.scss

    body{
      h1{
        color:red
      }
    }
    

    用GitBash 输入以下命令
    npm init -y
    npm i -D parcel
    npx parcel index.html

    之后打开这个网址,就可以看到效果了


    image.png

    3.scss常用功能(嵌套选择器、变量)

    1.嵌套选择器

    .nav{
        border: 1px solid red;
        > ul{
            background: #000;
            > li{
                border: 1px solid green
            }
        }
    }
    

    2.变量

    $grey: #666;
    $gray: $grey;
    $border-width: 2px;
    
    .nav{
        border: 1px solid $gray;
        > ul{
            background: #000;
            > li{
                border: $border-width solid green;
            }
        }
    }
    

    3.混入 mixin

    $grey: #666;
    $gray: $grey;
    $border-width: 2px;
    @mixin debug{
        border: 1px solid red;
    }
    
    .nav{
        @include debug;
        > ul{
            background: #000;
            > li{
                border: $border-width solid green;
            }
        }
    }
    

    传入参数

    $grey: #666;
    $gray: $grey;
    $border-width: 2px;
    @mixin debug($border-color){
        border: 1px solid $border-color;
    }
    
    .nav{
        @include debug(red);
        > ul{
            background: #000;
            > li{
                border: $border-width solid green;
            }
        }
    }
    

    默认参数

    $grey: #666;
    $gray: $grey;
    $border-width: 2px;
    @mixin debug($border-color:red){
        border: 1px solid $border-color;
    }
    
    .nav{
        @include debug;
        > ul{
            background: #000;
            > li{
                border: $border-width solid debug(green);
            }
        }
    }
    

    简写

    @mixin box{
         ...
    }
    
    @include box
    

    可以简写为

    %box{
        ...
    }
    
    @extend %box
    

    相关文章

      网友评论

          本文标题:scss入门

          本文链接:https://www.haomeiwen.com/subject/qppkkqtx.html