Sass基礎


Sass is the most mature, stable, and powerful professional grade CSS extension language in the world.


0. 介紹

  • CSS擴展語言
  • 完全兼容CSS
  • 簡單 穩(wěn)定 可維護
  • 兩種語法(sass & scss)
    //文件后綴名為sass的語法
    body
      background: #fff
      font-size: 12px
    div
      background: #000
    
    
    //文件后綴名為scss的語法  
    body {
     background: #fff;
     font-size: 12px;
    }
    div {
     background: #000;
    } 

1. 變量(Variables)

Sass中允許使用變量缀程, 所有變量以 $ 開頭。

    $width: 5rem;
        
    #main {
      width: $width;
    }

可以使用 #{ } 插入變量包竹。

    $name: ".main";
    
    div #{name} {
      color: #ffffff;
    }   

支持7種數(shù)據(jù)類型

  • Number: 1.2, 13, 10px
  • String: “foo”, ‘bar’, baz
  • Color: blue, #04a3f9, rgba(255, 0, 0, 0.5))
  • Boolean: true, false
  • Null: null
  • Lists:
    $font-list: 'Raleway','Dosis','Lato';
  • Maps:
    $style: (
    'color': tomato,
    'background': black
    );

2. 嵌套規(guī)則(Nested rules)

Sass允許選擇器之間嵌套淡喜。符號 & 用來引用父元素。

    #main {
      width: 5rem;
      height: 5rem;
        
      div {
        font-size: 1rem;
      }
        
      div p {
        font-size: 1rem;
      }
        
      div, p {
        font-size: 1rem;
      }
        
      &.active {
        width: 10rem;
        height: 10rem;
      }
        
      .active &{
        width: 10rem;
        height: 10rem;
      }
    }

編譯后結(jié)果:

    #main {
      width: 5rem;
      height: 5rem;
    }
    
    #main div {
      font-size: 1rem;
    }
    
    #main div p {
      font-size: 1rem;
    }
    
    #main div, #main p {
      font-size: 1rem;
    }
    
    #main.active {
      width: 10rem;
      height: 10rem;
    }
    
    .active #main {
      width: 10rem;
      height: 10rem;
    }

Sass還支持屬性嵌套

    nav {
      border: 1px solid #ccc;
      border-left: 0px;
      border-right: 0px;
    }

編譯后結(jié)果:

    nav {
      border: 1px solid #ccc {
        left: 0px;
        right: 0px;
      }
    }

3. @import

Sass允許import外部文件娱挨,使用 @import 命令抖苦。

導入文件的后綴若為 .sass 或 .scss, import時可以不加文件后綴毯侦。

    @import "index.scss";
    @import "index";

可以在一個 @import 后可以導入多個文件

    @import "index1.scss", "index2.scss";

4. @extend

Sass允許選擇器之間相互繼承洒缀,使用 @extend 命令瑰谜。

    #first {
        font-size: 12px;
    }
    
    #second {
        @extend #first;
        color: #ffffff;
    }       

編譯后結(jié)果:

    #first, #second {
      font-size: 12px;
    }

    #second {
      color: #ffffff;
    }

5. @mixin

Sass可以實現(xiàn)樣式復用,使用 @mixin@include

    @mixin red-text {
      color: #ff0000;
    }
    
    .page-title1 {
      @include red-text;
      padding: 4px;
      margin-top: 10px;
    }
    
    .page-title2 {
      @include red-text;
      padding: 4px;
      font-size: 20px;
    }

@mixin 支持參數(shù)傳遞

    @mixin button($width, $radius: 5px) {
      width: $width;
      border-radius: $radius;
    }
    
    . button1 { 
      @include button(5px, 10px)
    }

    . button2 { 
      @include button(5px)
    }

編譯后結(jié)果:

    .button1 {
      width: 5px;
      border-radius: 10px;
    }

    .button2 {
      width: 5px;
      border-radius: 5px;
    }

@mixin支持傳遞內(nèi)容树绩,使用 @content

    @mixin mediaMax($w) {
      @media screen and (max-width: $w) {
        @content;
      }
    }
    
    .hidden-ipad {
      @include mediaMax(1024px) {
        display: none;
      }
    }

6. 函數(shù)

Sass提供了一系列的函數(shù)功能萨脑,主要有:

  • 顏色函數(shù)

    • lighten($color,$amount):通過改變顏色的亮度值,讓顏色變亮
    • darken($color,$amount):通過改變顏色的亮度值饺饭,讓顏色變暗
    • alpha($color) /opacity($color):獲取顏色透明度值
    • rgba($color, $alpha):改變顏色的透明度值
  • 字符串函數(shù)

    • unquote($string):刪除字符串中的引號
    • quote($string):給字符串添加引號
  • 數(shù)字函數(shù)

    • percentage($value):將數(shù)字轉(zhuǎn)換成百分比
    • round($value):四舍五入
    • ceil($value):向上取整
    • floor($value):向下取整
    • abs($value):返回絕對值
    • min($numbers…):找出最小值
    • max($numbers…):找出最大值
  • 列表函數(shù)
    • length($list):返回列表長度
    • join($list1, $list2, [$separator]):將兩個列表給連成一個列表
    • append($list1, $val, [$separator]):將某個值放在列表的最后
    • zip($lists…):將多個列表合成一個多維列表
    • index($list, $value):返回某一個值在列表中的位置

......

  • 自定義函數(shù)
    @function calculateNumber($number){
        @return $number + 1;
    }   

7. 資料

  1. 阮一峰:<a >http://www.ruanyifeng.com/blog/2012/06/sass.html</a>
  2. Sass中文:<a >http://www.sasschina.com/guide/</a>
  3. SassMeister: Sass轉(zhuǎn)換器 <a >http://www.sassmeister.com/</a>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末砚哗,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子砰奕,更是在濱河造成了極大的恐慌,老刑警劉巖提鸟,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件军援,死亡現(xiàn)場離奇詭異,居然都是意外死亡称勋,警方通過查閱死者的電腦和手機胸哥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赡鲜,“玉大人空厌,你說我怎么就攤上這事∫辏” “怎么了嘲更?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長揩瞪。 經(jīng)常有香客問我赋朦,道長,這世上最難降的妖魔是什么李破? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任宠哄,我火速辦了婚禮,結(jié)果婚禮上嗤攻,老公的妹妹穿的比我還像新娘毛嫉。我一直安慰自己,他們只是感情好妇菱,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布承粤。 她就那樣靜靜地躺著暴区,像睡著了一般。 火紅的嫁衣襯著肌膚如雪密任。 梳的紋絲不亂的頭發(fā)上颜启,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音浪讳,去河邊找鬼缰盏。 笑死,一個胖子當著我的面吹牛淹遵,可吹牛的內(nèi)容都是我干的口猜。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼透揣,長吁一口氣:“原來是場噩夢啊……” “哼济炎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辐真,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤须尚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后侍咱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耐床,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年楔脯,在試婚紗的時候發(fā)現(xiàn)自己被綠了撩轰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡昧廷,死狀恐怖堪嫂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情木柬,我是刑警寧澤皆串,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站弄诲,受9級特大地震影響愚战,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜齐遵,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一寂玲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧梗摇,春花似錦拓哟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽流纹。三九已至劫瞳,卻和暖如春筛武,著一層夾襖步出監(jiān)牢的瞬間鞍帝,已是汗流浹背妒峦。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留麻车,地道東北人伯铣。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓崎坊,卻偏偏與公主長得像阵苇,于是被迫代替她去往敵國和親壁公。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 1绅项、SCSS 是 Sass 的新語法格式紊册,從外形上來判斷他和 CSS 長得幾乎是一模一樣,代碼都包裹在一對大括號里...
    夜幕小草閱讀 1,707評論 2 10
  • 本文簡單的介紹SASS預處理語言快耿,更多的應用請參考官方文檔 一囊陡、什么是SASS 二、為什么使用SASS 三掀亥、安裝S...
    CharlesDarwin閱讀 425評論 0 0
  • 一关斜、相關網(wǎng)站地址 Sass官網(wǎng):http://sass-lang.com/;Sass中文網(wǎng):https://www...
    夏晶晶綠閱讀 844評論 0 0
  • 基礎 聲明變量 普通變量 默認變量 變量覆蓋:只需要在默認變量之前重新聲明下變量即可 變量的調(diào)用 局部變量和全局變...
    Jill1231閱讀 1,271評論 0 1
  • -------------------------一铺浇、控制指令--------------------------...
    夜幕小草閱讀 3,148評論 0 5