sass 的學習筆記

1孤钦、什么是CSS預處理器,什么是Sass

**(1) **CSS 預處理器用一種專門的編程語言纯丸,進行 Web 頁面樣式設計偏形,然后再編譯成正常的 CSS 文件,以供項目使用觉鼻。
(2) Sass是一種最早出現(xiàn)的“CSS預編譯處理器”俊扭,進行網(wǎng)頁樣式設計,然后再編譯成正常的CSS文件坠陈。Sass提供了許多便利的寫法萨惑,大大節(jié)省了設計者的時間,使得CSS開發(fā)仇矾,變得簡單和可維護 咒钟。

2、Sass與SCSS有什么區(qū)別

(1).文件擴展名不同若未,Sass 是以“.sass”后綴為擴展名朱嘴,而 SCSS 是以“.scss”后綴為擴展名
(2).語法書寫方式不同,Sass 是以嚴格的縮進式語法規(guī)則來書寫粗合,不帶大括號({})和分號(;)萍嬉,而 SCSS 的語法書寫和我們的 CSS 語法書寫方式非常類似
Sass 語法

$font-stack: Helvetica, sans-serif  //定義變量
$primary-color: #333; //定義變量
  body
  font: 100% $font-stack
  color: $primary-color

** SCSS 語法**

$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

編譯出來的 CSS

body {
 font: 100% Helvetica, sans-serif;
 color: #333;
}

3、sass與scss和純css寫法差別

Sass 和 CSS 寫法的確存在一定的差異隙疚,由于 Sass 是基于 Ruby 寫出來壤追,所以其延續(xù)了 Ruby 的書寫規(guī)范。在書寫 Sass 時不帶有大括號和分號供屉,其主要是依靠嚴格的縮進方式來控制的行冰。如:
Sass寫法:

body
  color: #fff
  background: #f36

而在 CSS 我們是這樣書寫:

body{
  color:#fff;
  background:#f36;
}

SCSS 和 CSS 寫法無差別溺蕉,這也是 Sass 后來越來越受大眾喜歡原因之一。簡單點說悼做,把你現(xiàn)有的“.css”文件直接修改成“.scss”即可使用疯特。

4、Sass 語法格式

這里說的 Sass 語法是 Sass 的最初語法格式肛走,他是通過 tab 鍵控制縮進的一種語法規(guī)則漓雅,而且這種縮進要求非常嚴格。另外其不帶有任何的分號和大括號朽色。常常把這種格式稱為 Sass 老版本邻吞,其文件名以“.sass”為擴展名。來看一個 Sass 語法格式的簡單示例葫男。假設我們有一段這樣的 CSS 代碼:

body {
  font: 100% Helvetica, sans-serif;
  color: #333;
}

現(xiàn)在用 Sass 的語法格式來編寫:

$font-stack: Helvetica, sans-serif
$primary-color: #333

body
  font: 100% $font-stack
  color: $primary-color

在整個 Sass 代碼中抱冷,我們沒看到類似 CSS 中的大括號和分號。
注:這種語法格式對于前端人員都不太容易接受梢褐,而且容易出錯徘层。

5、利职、SCSS語法格式

SCSS 是 Sass 的新語法格式趣效,從外形上來判斷他和 CSS 長得幾乎是一模一樣,代碼都包裹在一對大括號里猪贪,并且末尾結(jié)束處都有一個分號跷敬。其文件名格式常常以“.scss”為擴展名。
同樣的這段 CSS 代碼:

body {
  font: 100% Helvetica, sans-serif;
  color: #333;
}

我們使用 SCSS 語法格式將按下面這樣來書寫:

$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

6热押、了解sass前世和它安裝的前提條件

(1)sass 是基于ruby來發(fā)明的 這也決定了他前期的語法結(jié)構(gòu)類似ruby的嚴格縮進的風格西傀。
(2)我們想利用sass語言 必須要安裝ruby的安裝包 以ruby為開發(fā)環(huán)境 來編寫sass。
(3)在ruby環(huán)境下使用 gem install sass(網(wǎng)絡安裝方式)gem install 本地sass安裝包的路徑桶癣。

  1. sass的編譯
    (1)命令編譯
    sass .scss:.css
    (2)GUI圖形化界面操作編譯
    koala
    (特別注意:)注意ruby 和 koala 安裝目錄下的核心配置文件的編碼格式 為“UTF-8”

7拥褂、輸出方式

nested:嵌套縮進的css代碼,它是默認值牙寞。
  expanded:沒有縮進的饺鹃、擴展的css代碼。
  compact:簡潔格式的css代碼间雀。
  compressed:壓縮后的css代碼悔详。

8、Sass聲明變量

· 變量聲明符($) 變量名稱:變量值; $width: 300px;
  · 普通變量:聲明變量以后可以在全局范圍內(nèi)使用;
  · 默認變量:在值的后面加上惹挟!default;

· 全局變量:定義在元素外面的變量
  · 局部變量:定義在元素內(nèi)部的變量
  · 全局變量的影子:變量名稱相同下茄螃,局部變量稱之為全局變量的影子,局部變量只在局部范圍內(nèi)覆蓋全局變量

9连锯、嵌套:

選擇器嵌套归苍,

nav{
    a{
      color:red;
        header &{color:green;}
    }
}

屬性嵌套用狱,

.box{
    border:{
        top:1px solid red;
        bottom:1px solid green;
    }
}

偽類嵌套

.clearfix{
    &:before,&:after{content:"";display:table;}
    &:after{clear:both;overflow:hidden;}
}

10、混合宏的聲明拼弃、調(diào)用夏伊、參數(shù)

(1)@mixin:聲明混合宏的關鍵字
  (2)@include:調(diào)用混合宏的關鍵字
  (3)混合宏的傳參有三種寫法
     1. 只傳變量名,調(diào)用的時候再去傳值
     2. 變量直接在混合宏中賦值
     3. 基于前兩種我們也可以傳多個參數(shù) 注意“ ... ”

11肴敛、Sass擴展/繼承

·通過關鍵詞 “@extend”來繼承已存在的類樣式塊,從而實現(xiàn)代碼的繼承吗购。
  ·繼承特點:為了減少冗余的代碼医男。
  ·語法:@extend 要繼承的對象。

12捻勉、占位符

占位符聲明關鍵字:%placeholder
  特點:不被繼承就不會編譯成css代碼

總結(jié):聲明方式不同镀梭、調(diào)用方法不同、使用環(huán)境不同

·混合宏:
    聲明方式:@mixin           
    調(diào)用方法:@include
    使用環(huán)境:相同的代碼塊在不同的環(huán)境傳遞不同的值踱启,可以通過混合宏來定義重復使用的代碼塊报账。
    不足:針對相同的樣式,會造成冗余(對于)的代碼塊埠偿。
    
·繼承:
    聲明方式:.class
    調(diào)用方法:@extend
    使用環(huán)境:相同的代碼塊不需要傳遞不同的值透罢,使用Sass的繼承來調(diào)用已存在的基類。使用繼承會將調(diào)用相同基類的代碼合并到一起冠蒋。
    不足:如果基類羽圃,并不存在于HTML結(jié)構(gòu)時,不管調(diào)不調(diào)用抖剿,都會被編譯在css中朽寞。

·占位符: 
    聲明方式:%placeholder
    調(diào)用方法:@extend
    使用環(huán)境:和繼承類似,不同的是斩郎,相同的代碼塊并沒有在基類中存在脑融,而是額外聲明。如果不調(diào)用以聲明的占位符缩宜,將不會產(chǎn)生任何樣式的代碼肘迎。如果在不同選擇器調(diào)用,將會把編譯出的相同的css代碼合并在一起锻煌。

13膜宋、插值

·聲明插值的關鍵語法:#{}
  ·特點:Sass獲得一個更好的結(jié)構(gòu)體系。比如說想寫更干凈的炼幔、高效的和面向?qū)ο蟮腃SS秋茫。
  ·是指變量插值惫撰,或者變量替換矩动。

$a:(margin,padding);                //聲明一個變量
@mixin set-value($side,$value){     //聲明一個混合宏 和兩個形參
  @each $b in $a{                   //遍歷語句  $a是被遍歷的對象   $b遍歷中當前取到的值
    #{$b}-#{$side}:$value;      //動態(tài)生成我們想要的屬性
  }
}
.box{
  @include set-value(top,14px);
 }
***編譯后的CSS***
.box{
  margin-top:14px;
  padding-top:14px;
}

·當想設置屬性值的時候你可以使用字.符串插入進來,另一個有用的用法是構(gòu)建一個選擇器。

        @mixin size($class, $small, $medium, $big){
            .#{$class}-small { font-size:$small; }
            .#{$class}-medium{ font-size: $medium; }
            .#{$class}-big{ font-size: $big; }
        }
        @include size("header-text",12px,20px,40px);
        ***編譯后的CSS***
        .header-text-small{ font-size: 12px; }
        .header-text-medium{ font-size: 20px; }
        .header-text-big{ font-size: 40px; }

注釋
/類似CSS注釋/
//類似JS注釋

14尝苇、Sass數(shù)據(jù)類型

數(shù)字:1,2,3,10px;
  字符串:有引號字符串(單引號和雙引號) 和 無引號字符串;在用插值語句時,有引號字符串將被編譯為無引號字符串贱案,方便了在混合指令中引用選擇器名省骂。
  顏色:blue、red...;
  布爾:true局荚、false;
  空值:null;
  值列表:用空格和逗號分開的;

15超凳、運算

加法:可以做各種運算,但對于不同類型的單位耀态,在計算時會報錯

        .box {
             width: 20px + 8in;
        }   //width: 788px;

減法:和加法類似轮傍,碰到不同類型的單位也會報錯

       $a:50px;
       $b:10px;
       .box{
           width: $a - $b
       }   //width: 40px;

乘法:能夠支持多種單位,但當一個單位同時聲明兩個值會報錯,碰到不同類型的單位也會報錯首装。

        .box {
             width: 10px * 2;
        }   //width: 20px;

除法:除法用/代替 運算的時候要加括號

        .box {
             width: (100px / 2);  
        }   //width:50px;

變量運算
  ·可以使用變量進行運算

        $a:20px;
        $b:10px;
        $c:5px;
        .box{
            width:$a + $b + $c
        }   //width:35px;

顏色運算
  ·紅綠藍各顏色分段單獨運算

        p {
            color: #010203 + #040506;
        }   //color: #050709;

字符運算
  ·用"+"對字符串拼接

     div {
         cursor: e + -resize;
     }   //cursor: e-resize;

數(shù)字運算
  ·和數(shù)學運算一樣

        .box {
            width: ((220px + 720px) - 11 * 20 ) / 12 ;  
        }   // width: 60px;   
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末创夜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子仙逻,更是在濱河造成了極大的恐慌驰吓,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件系奉,死亡現(xiàn)場離奇詭異檬贰,居然都是意外死亡,警方通過查閱死者的電腦和手機缺亮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門偎蘸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瞬内,你說我怎么就攤上這事迷雪。” “怎么了虫蝶?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵章咧,是天一觀的道長。 經(jīng)常有香客問我能真,道長赁严,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任粉铐,我火速辦了婚禮疼约,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蝙泼。我一直安慰自己程剥,他們只是感情好,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布汤踏。 她就那樣靜靜地躺著织鲸,像睡著了一般舔腾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搂擦,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天稳诚,我揣著相機與錄音,去河邊找鬼瀑踢。 笑死扳还,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的橱夭。 我是一名探鬼主播氨距,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼徘钥!你這毒婦竟也來了衔蹲?” 一聲冷哼從身側(cè)響起肢娘,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤呈础,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后橱健,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體而钞,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年拘荡,在試婚紗的時候發(fā)現(xiàn)自己被綠了臼节。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡珊皿,死狀恐怖网缝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蟋定,我是刑警寧澤粉臊,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站驶兜,受9級特大地震影響扼仲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抄淑,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一屠凶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肆资,春花似錦矗愧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽监署。三九已至,卻和暖如春纽哥,著一層夾襖步出監(jiān)牢的瞬間钠乏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工春塌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晓避,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓只壳,卻偏偏與公主長得像俏拱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吼句,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

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

  • 3.移動端前端基礎架構(gòu) 15:16單詞釋義:a)mkdir: make directory 建立一個新的子目錄(...
    小豌豆書吧閱讀 886評論 0 1
  • [toc] 前言 本文所有的演示都是基于Win10操作系統(tǒng)惕艳。 關于Sass 1.定義 Sass的學名叫“CSS預處...
    崔小叨閱讀 18,233評論 0 78
  • 安裝運行 1.下載ruby并安裝 2.安裝之后打開命令行執(zhí)行gem命令搞隐,檢查是否已經(jīng)安裝好 安裝完ruby之后,在...
    wshining閱讀 706評論 0 1
  • 1远搪、SCSS 是 Sass 的新語法格式劣纲,從外形上來判斷他和 CSS 長得幾乎是一模一樣,代碼都包裹在一對大括號里...
    夜幕小草閱讀 1,704評論 2 10
  • 一谁鳍、相關網(wǎng)站地址 Sass官網(wǎng):http://sass-lang.com/癞季;Sass中文網(wǎng):https://www...
    夏晶晶綠閱讀 838評論 0 0