SASS學習系列之四--------- 快速入門

    本文直接用scss語法規則寫的scss文件,直接複製代碼保存即可用

/*
**    SASS 快速入門
**
/*
**  1. 使用變量, 
**      1.1 聲明變量以$符號標識 ()
**      1.2 引用變量
**      1.3 變量名用中劃線還是下劃線分隔;個人喜好,建議用中劃線。
**
*/
$base-color: #ccc; /*聲明變量*/
$side: left;
.main-container {
    background-color: $base-color; /*引用變量*/
    border-#{$side}-radius: 5px; /*在字符連接時,要用#開頭和一對花括號包裹*/
}
/*  2. 嵌套CSS 規則 
**      2-1. 父選擇器的標識符&
**      2-2. 羣組選擇器的嵌套
**      2-3. 子組合選擇器和同層組合選擇器:>、+和~
**      2-4. 嵌套屬性;
*/
.container {
  p {
    padding: 10px;
  }
  .item {
    width: 200px;
    height: 40px;
  }
  a {
    background-color: #ccc;     
    &:hover { /*父選擇器的標識符&*/
        color: fff;
        background-color: green;
    }
  }
  h1, h2, h3 { /*羣組選擇器的嵌套;*/
    margin-bottom: .8em
  }

  article { /*子組合選擇器和同層組合選擇器:>、+和~*/
    ~ article { border-top: 1px dashed #ccc }
    > section { background: #eee }
    dl > {
      dt { color: #333 }
      dd { color: #555 }
    }
    nav + & { margin-top: 0 }
  }
  .div {
    border-left: {
        color: $base-color;
        width: 1px;
        style: solid; /*當然,這個更簡單的是border-left: 1px solid #ccc*/
    }
  }
}

/*
**  3. 導入SASS文件
**      3-1 關鍵字 @import <引用文件>   省略文件sass、scss後綴
**      3-2 使用SASS部分文件,sass局部文件的文件名以下劃線開頭。
**              即只引用該文件中的樣式,在編譯時卻生成該文件對應的css文件
**      3-3 默認變量值
**              關鍵字 !default 
**              聲明某個可以被其他sass文件改變的屬性提供默認值
**      3-4 嵌套導入
**              跟原生的css不同,sass允許@import命令寫在css規則內。
**      3-5 原生的CSS導入
**              需要把原生css文件的後綴改成scss,然後直接導入就好,scss兼容css語法
**  
*/
@import '_reset'; 
/*  這個_reset.scss文件我只想在這裏引用它,而在編譯的時候,
**  不會生成對應的css文件,也就是_reset.css文件*/

$box-width: 100px !default; /*默認變量值*/
/*$box-width: 10px; /*若自己後面覆蓋了*/
.box-width {
    width: $box-width; /*我在_reset.scss中,聲明$fancybox-width: 200px; 若沒有外部引用,就默認400px;*/
}
/*嵌套導入*/
.iframe {
  .div {
    position: absolute;
  }
  @import 'iframe'; /*不加分號會報錯 */
}
/*原生的CSS導入*/
@import 'myCssFile';  

/**
**  4. 註釋 /***/  /*或者*/  //雙斜線註釋  /*!貌似還有有這種米字號後加感嘆號的


/*
**  5. 混合器
**      混合器使用@mixin標識符定義。
**      5-1. 不傳參數
**      5-2. 傳一個或多個參數
**      5-3. 默認參數
*/
@mixin div-demo { //無參數
  width: 100px;
  height: 100px;
  border: 1px solid #ccc;
}
 @mixin rounded-corners($size) { //帶參數
  -moz-border-radius: $size;
  -webkit-border-radius: $size;
  border-radius: $size;
}

@mixin border-radius ( $left-radius, $right-radius ) { //多個參數
  -webkit-border-left-radius: $left-radius;
     -moz-border-left-radius: $left-radius;
      -ms-border-left-radius: $left-radius;
          border-left-radius: $left-radius;

  -webkit-border-right-radius: $right-radius;
     -moz-border-right-radius: $right-radius;
      -ms-border-right-radius: $right-radius;
          border-right-radius: $right-radius;

}

@mixin border-radius-default ( $default, $left-radius: $default, $right-radius: $default ) { //默認參數
  border-left-radius: $left-radius;
  border-right-radius: $right-radius; /*爲看得清楚些,就把兼容寫法去掉*/
}

@mixin border-radius-default-2px ( $default:2px, $left-radius: $default, $right-radius: $default ) { //默認參數
  border-left-radius: $left-radius;
  border-right-radius: $right-radius; /*本應傳多個參數,但什麼都不傳*/
}
.container {
  .div {
    @include div-demo;
    @include rounded-corners(3px);
  }
  .div2 {
    @include border-radius(3px, 6px);
  }
  .div3 {
    @include border-radius-default(1px);
  }
  .div4 {
    @include border-radius-default-2px();
  }
}

/*  6. 繼承 @extend */
.container2 {
  .div {
    width: 100px;
    height: 100px;
  }
  .div2 {
    @extend .div;
    text-shadow: 3px 3px 3px #ccc;

  }
}

/*
** sass官網: http://sass-lang.com/
** sass中文網快速入門: https://www.sass.hk/guide/
** sass在線轉換器: https://www.sassmeister.com/
** 阮一峯SASS用法指南: http://www.ruanyifeng.com/blog/2012/06/sass.html
*/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章