sass學(xué)習(xí)筆記


title: vue 中使用 sass

Sass 是一款強(qiáng)化 CSS 的輔助工具毒费,它在 CSS 語法的基礎(chǔ)上增加了變量 (variables)改化、嵌套 (nested rules)鸠信、混合 (mixins)、導(dǎo)入 (inline imports) 等高級(jí)功能

安裝(mac下)以及使用

安裝

```
sudo cnpm install node-sass --save-dev
sudo cnpm install sass-loader --save-dev
```

使用

```
<style lang="scss" scoped> //scoped代表只在本頁(yè)應(yīng)用的樣式
</style>
```

功能

1. 嵌套

css允許將一套css樣式套進(jìn)另一套樣式中衣屏,內(nèi)層的樣式為外層樣式的子選擇器
(1)普通嵌套

scss樣式

```
body {
    background: red;
    div {
        height: 30px;
        a{
            display: block;
        }
    }
}
```

編譯后的css樣式

```
body {
    background: red;
}
body div {
        height: 30px;
}
body div a{
    display: block;
}
```

(2)父選擇器
scss 用 & 符號(hào)代表嵌套規(guī)則外層的父選擇器

scss樣式

```
a {
    background: red;
    &:hover {
        text-decoration: underline;
    }
}
```

編譯后的css樣式

```
a {
    background: red;
}
a:hover {
    text-decoration: underline;
}
```

(3)屬性嵌套
sass允許同一個(gè)屬性嵌套在命名空間中

scss樣式

```
a {
    font {
        size: 28px;
        weight: bold;
    }
}
```

編譯后的css樣式

```
a {
    font-size: 28px;
    font-weight: bold;
}
```

(4)@import嵌套樣式

scss樣式

```
.text {
    color: red;
}
p {
    @import 'text'
}
```

編譯后的css樣式

```
p .text{
    color: red;
}
```

2. 變量 $

變量支持塊級(jí)作用域施绎,嵌套內(nèi)定義的變量成為局部變量,只能在當(dāng)前嵌套內(nèi)使用骄蝇,在頂層定義的變量成為全局變量膳殷,可以在所用地方使用

  • !global 可以將局部變量轉(zhuǎn)換為全局變量,用于結(jié)尾

scss樣式

```
div {
    $width: 100px !global;
    width: $width;
}
.container {
    width: $width;
}
```

編譯后的css樣式

```
div {
    width: 100px;
}
.container {
    width: 100px;
}
```
  • !default 默認(rèn)變量九火,不會(huì)重新賦值已經(jīng)賦值的變量赚窃,但是沒有賦值的變量會(huì)賦予值

scss樣式

```
$content: 'a little pain'
$content: 'much pain' !default
$value: 'lover'
p:before {
    content: $content
}
a:before{
    content: $value
}
```

編譯后css樣式

```
p:before {
    content: a little pain
}
a:before{
    content: 'lover'
}
```

3. 字符串

  • 使用#{}時(shí),有引號(hào)字符串將被編譯為無引號(hào)字符串岔激,這樣便于在勒极,,mixin中引用選擇器名

scss樣式

```
@mixin firefox-message($selector) {
    body.content #{$selector}:before {
        content: 'hi'
    }
}
@include firefox-message('.header')
```

編譯后的css樣式

```
body.content .header:before{
    content: 'hi'
}
```

4. 運(yùn)算

scss樣式

```
p {
    font-size: 20px + 10px/2
}
```

編譯后的css樣式

```
p {
    font-size: 25px;
}
```

5. 插值語句

通過#{} 插值語句可以在選擇器或?qū)傩悦惺褂米兞?/p>

scss樣式

```
$name: pig
$p: padding
p .$name {
    $p-left: 20px;
}
```

編譯后的css樣式

```
p .pig{
    padding-left: 20px;
}
```

6. extend繼承

@extend 的作用是將重復(fù)使用的樣式延伸給需要包含這個(gè)樣式的特殊樣式

scss樣式

```
$p: padding
p {
    $p-left: 20px;
}
div{
    @extend p
    border: 1px solid #aaa;
}
```

編譯后的css樣式

```
p , div {
    padding-left: 20px;
}
div{
    border: 1px solid #aaa;
}
```

7. 控制指令

(1)@if

scss樣式

```
p {
    @if 1 + 1 == 2 {
        border: 1px solid #aaa;
    }
}
```

編譯后的css樣式

```
p {
    border: 1px solid #aaa;
}
```

(2)@for

scss樣式

```
@for $i from 1 through 3 {
    .item-#{$i} {
        width: 2em * $i;
    }
}
```

編譯后的css樣式

```
.item-1 {
    width: 2em;
}
.item-2 {
    width: 4em;
}
.item-3 {
    width: 6em;
}
```

(3)@each

scss樣式

```
@each $header, $value in (h1: red, h2: blue) {
    $header {
        color: $value
    }
}
```

編譯后的css樣式

```
h1 {
    color: red;
}
h2 {
    width: blue;
}
```

8. 混合指令

混合指令用于定義可重復(fù)使用的樣式鹦倚,避免了使用無語意的 class

(1)定義混合樣式@mixin

scss樣式

```
@mixin font-value {
    font {
        size: 12px;
        weight: bold;
    }
    color: #fff;
}
```

(2)引用混合樣式@include

scss樣式

```
p {
    @include font-value
    background: red;
}
```

編譯后的css樣式

```
p {
    font-size: 12px;
    font-weight: bold;
    color: #fff;
    background: red;
}
```

(3)混合樣式帶參數(shù)

  • 普通參數(shù)

sass

```
@mixin args ($color) {
    font {
        size: 12px;
        weight: bold;
    }
    color: $color
}
p {
    @include args(#fff)
    background: red;
}
```

編譯后的css樣式

```
p {
    font-size: 12px;
    font-weight: bold;
    color: #fff;
    background: red;
}
```
  • 默認(rèn)參數(shù)

sass

```
@mixin args ($color, $value: 12px) {
    font {
        size: $value;
        weight: bold;
    }
    color: $color
}
p {
    @include args(#fff, 13px)
}
a {
    @include args(red)
}
```

編譯后的css樣式

```
p {
    font-size: 13px;
    font-weight: bold;
    color: #fff;
}
a {
    font-size: 12px;
    font-weight: bold;
    color: red;
}
```
  • 參數(shù)變量

sass

```
@mixin args ($shadow...) {
    box-shadow: $shadow...
}
p {
    @include args(2px 3px 2px #000)
}
```

編譯后的css樣式

```
p {
    box-shadow: 2px 3px 2px #000;
}
```

(4)在混合指令中導(dǎo)入內(nèi)容@content

scss樣式

```
@mixin name {
    * html {
        @content
    }
}
@include name {
    body {
        background: red;
    }
}
```

編譯后的css樣式

```
* html body {
    background: red;
}
```
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末河质,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子震叙,更是在濱河造成了極大的恐慌掀鹅,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件媒楼,死亡現(xiàn)場(chǎng)離奇詭異乐尊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)划址,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門扔嵌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人夺颤,你說我怎么就攤上這事痢缎。” “怎么了世澜?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵独旷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng)嵌洼,這世上最難降的妖魔是什么案疲? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮麻养,結(jié)果婚禮上褐啡,老公的妹妹穿的比我還像新娘。我一直安慰自己鳖昌,他們只是感情好备畦,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著许昨,像睡著了一般萍恕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上车要,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天允粤,我揣著相機(jī)與錄音,去河邊找鬼翼岁。 笑死类垫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的琅坡。 我是一名探鬼主播悉患,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼榆俺!你這毒婦竟也來了售躁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤茴晋,失蹤者是張志新(化名)和其女友劉穎陪捷,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诺擅,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡市袖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烁涌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苍碟。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖撮执,靈堂內(nèi)的尸體忽然破棺而出微峰,到底是詐尸還是另有隱情,我是刑警寧澤抒钱,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布蜓肆,位于F島的核電站掂榔,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏症杏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一瑞信、第九天 我趴在偏房一處隱蔽的房頂上張望厉颤。 院中可真熱鬧,春花似錦凡简、人聲如沸逼友。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帜乞。三九已至,卻和暖如春筐眷,著一層夾襖步出監(jiān)牢的瞬間黎烈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工匀谣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留照棋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓武翎,卻偏偏與公主長(zhǎng)得像烈炭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宝恶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • 什么是SASS SASS是一種CSS的開發(fā)工具符隙,提供了許多便利的寫法,大大節(jié)省了設(shè)計(jì)者的時(shí)間垫毙,使得CSS的開發(fā)霹疫,變...
    陳小陌丿閱讀 476評(píng)論 0 0
  • 安裝運(yùn)行 1.下載ruby并安裝 2.安裝之后打開命令行執(zhí)行g(shù)em命令,檢查是否已經(jīng)安裝好 安裝完ruby之后综芥,在...
    wshining閱讀 722評(píng)論 0 1
  • ? Sass是使用Ruby語言編寫的css預(yù)處理語言更米,誕生于2007年。Sass, LESS, stylus等...
    智明書閱讀 257評(píng)論 0 1
  • SASS學(xué)習(xí)筆記 文件后綴名 sass有兩種后綴名文件:一種后綴名為sass毫痕,不使用大括號(hào)和分號(hào)征峦;另一種是scss...
    EL_PSY_CONGROO閱讀 268評(píng)論 0 0
  • 潺潺流水,啁啾鳥鳴消请,清甜花草香栏笆,置身大自然,小米才發(fā)覺自己曾經(jīng)的日子過得那么糙——每天天還不亮就要起來匆匆忙忙洗漱...
    云一禾閱讀 231評(píng)論 0 0