Sass&Scss 選擇器 混合器 導入 條件判斷 迭代


Sass

基於ruby的一種將腳本解析成CSS的腳本語言。也可以說是一種預處理語言。

Sass在css的語法基礎上增加了變量、嵌套、混合、繼承、導入等高級功能。

使用Sass與Sass樣式庫(如compass)有助於更好地管理樣式文件,更高效開發項目。

sass不適用花括號和分號,不被廣為接受

而scss作為sass3引用的新語法,兼容了CSS3的同時,繼承了Sass的強大功能,比較優秀

Sass的安裝與使用:

1 安裝ruby依賴:以下任選其一

 

2 打開VScode終端安裝sass

  • gem install sass
  • gem install compass(compass是一種sass樣式庫)

 

3 編寫sass代碼,在指定的目錄下編譯成css文件

$w:50px
div
    width: 50px
    height: 50px
    background-color: red

在指定目錄下生成css文件:

格式:sass sassUrl  cssUrl

示例:sass  ./testSass/a.sass  ./testcss/a.css

 

4 在頁面引入sass 

其實是使用link標簽引入sass生成的css文件

<link rel="stylesheet" href="../css/c.css">

 

5 效果

 

6 監聽目錄下sass變化並動態生成css文件到指定css目錄

終端命令:

sass --watch  sass文件目錄:css文件生成目錄

 

 示例:sass --watch ./testSass:./testCss

 Scss

命令行:sass sccsPath  cssPath

例如:sass ./testScss/a.sccs  ./testcss/sa.css

標簽選擇器:

$_w:100px;
div{
    width: $_w;
    height: 100px;
    background: red;
}

類選擇器:

.div1{
    width: $_w*3;
    height: $_w*4;
    background: purple;
}

 

&代表當前父標簽,偽類選擇器

$_w1: 100px;
div {
  width: $_w1;
  height: $_w1;
  background-color: aqua;
  // & is subClass : div 
  &:hover{
      background-color: lightcoral;
  }
}

 

偽元素選擇器:

$w_1:100px;
div{
    width: $_w;
    height: $_w;
    border: 1px solid #000;
    &::after{
        content: 'after element';
        display: block;
        width: $w_1;
        height: $w_1;
        background-color: aqua;
        position: absolute;
        left: 100px;
    }
}

 

后代選擇器:

$w_1:100px;
div{
    span{
        display: block;
        position: absolute;
        left: 100px;
        background-color: pink;
    }
}

 

子代選擇器:

$w_1:100px;
div{
    >span{
        display: block;
        position: absolute;
        left: 100px;
        background-color: pink;
    }
}

 

相鄰兄弟選擇器: 元素1 + 兄弟元素(選中此元素,是元素1的后方相鄰元素)

+只能選中當前元素后方相鄰元素,只能選一個

~也表示兄弟選擇器,區別是~可以選擇該元素后方所有的同級元素

二者都不能選擇該元素1前面的兄弟元素

$w_1: 100px;
div {
  + span {
    display: block;
    position: absolute;
    left: $w_1;
    background-color: pink;
  }
}

 

相鄰兄弟選擇器:~  選擇后方所有同級兄弟元素,只能是后方的

$w_1: 100px;
div {
  ~ span {
    display: block;
    position: absolute;
    left: $w_1;
    background-color: pink;
  }
}
div{
    &+.div1{
        background-color: yellow;
    }
}

 

選擇元素的屬性:

$_w :100px;
div{
    width: $_w;
    height: $_w;
    background-color: red;
    border: {
        left: {
            width: 10px;
            style:solid;
            color: pink;
        };
    };
}

 

導入:

@import "c";//導入同級目錄下c.scss

 

混合器的使用:@maxin定義內容,@include在選擇器里導入內容語句。如果是不同文件,在使用混合器之前,要將@maxin所在scss文件導入方可

注意:調用其他文件下的混合器,在include之前需要@import導入

@mixin setUL($_w,$_h){
  width: $_w+px;
  height: $_h+px;
  background-color: aqua;
}
ul{
    @include setUL(100,200);
}

 

混合器與條件判斷if使用:

@mixin setP($_w:10,$_h:10){
    @if $_w<50{
        $_w:500;
    }
    width:$_w+px;
    height: $_h+px;
    background: lightcoral;
}
p{
    @include setP(1,100)
}

 

混合器子代繼承

@import selector;

p{
    >a{
        @extend p;
        display: block;
        position: relative;
        left: 100px;
        background-color: lightcyan;
    }
}

 

迭代器:

只包含start不包含end

for $var from start through(或者用to) end{

selector#{$var}{....}

}  

@for $i from 1 through 6 {
    .elem#{$i}{
        display: inline-block;
        width: 50px;
        height: 50px;
        background-color: lightcyan;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM