sass入門

vue-cli支持scss

安裝Ruby

vue-cli中已經(jīng)內(nèi)置配置好了sass 以及l(fā)ass的配置励两。
如果需要的話直接下載兩個模塊就可以了
webpack它會根據(jù) lang 屬性自動用適當?shù)募虞d器去處理乐导。

npm install node-sass --save-dev  
npm install sass-loader --save-dev  

// webstrom在vue里的style使用
<style lang="scss" type="text/scss"></style>

當變量定義在css規(guī)則塊內(nèi),那么該變量只能在此規(guī)則塊內(nèi)使用西傀。如果它們出現(xiàn)在任何形式的{...}塊中(如@media或者@font-face塊)壁公,情況也是如此

1. 聲明變量和引用

$warp-color: #f90;
.warp {
  color: $warp-color;
}
//編譯后
.warp { color: #f90 }

2. css嵌套和群組選擇器

#app {
  background: #ccc
  .cont {
    width: 1000px
   }
  p, h1, h2 {
    color: #ff0
  }
}

// 編譯后
#app { background: #ccc }
#app .cont { width: 1000px }
#app p { color: #f00 }
#app h1 { color: #ff0 }
#app h2 { color: #ff0 }

3. &標識符表示父元素

// 添加偽類時
#app a{   //&等價于#app a
  &:hover {
    color: #f00
  }
  &:after
}
//編譯后
#app a:hover { color:red }

// 在父選擇器之前添加選擇器
.cont{
  width: 1000px
  #app & {
    color: #ff0
  }
}
//編譯后
.cont { width: 1000px }
#app .cont { color: #ff0 }

4. 子組合選擇器和同層組合選擇器:>腔寡、+和~

> 選擇p元素下的直接子元素(span)
如:p > span 孫子元素不會選中

+ 選擇p元素后緊跟的span元素
如:p + span 

~ 選擇p元素后的同層所有的span元素
如:p ~ span

#warp {
  ~ p { color: #000 }
  > section { background: #eee }
  .cont { 
    & + span {
      color: #fff
    }
  }
}
//編譯后
#warp ~ p { color: #000 }
#warp > section { background: #eee }
#warp .cont + span { color: #fff } 

5.嵌套屬性在 - 處斷開

nav {
  border: {
    style: solid;
    width: 1px;
    color: #ccc;
  }
}
div {
  border: 1px solid #ccc {
  left: 0px;
  right: 0px;
  }
}
//編譯后
nav {
  border-style: solid;
  border-width: 1px;
  border-color: #ccc;
}
div {
  border: 1px solid #ccc;
  border-left: 0px;
  border-right: 0px;
}

6. 局部文件創(chuàng)建局部文件 _night-sky.scss

局部文件編譯時不會生成獨立css文件洪添,是專門為@import命令而編寫的sass文件垦页。

ass局部文件的文件名以下劃線開頭如:_night-sky.scss

這樣,sass就不會在編譯時單獨編譯這個文件輸出css干奢,而只把這個文件用作導入

導入文件@import "night-sky"(可以省略開頭_后綴.scss)

局部文件可以被多個不同的文件引用痊焊。當一些樣式需要在多個頁面甚至多個項目中使用時非常有用

7. 設(shè)置默認變量值!default

如果希望使用可以定制修改sass庫文件中的某些值,可以使用!default:

含義: 如果這個變量被聲明賦值了忿峻,那就用它聲明的值薄啥,否則就用這個默認值.

即: 用戶在導入scss局部文件之前聲明了$warp-color變量,那么局部文件的$warp-color: #f90 !default無效;

$warp-color: #f90 !default;
.warp {
  color: $warp-color;
}

8. 嵌套導入@import "bule_theme"

sass允許@import命令寫在css規(guī)則內(nèi) 如:

//_blue-theme.scss 局部文件
aside {
  background: blue;
  color: white;
}

#warp {
  @import "blue-theme"
}
//編譯后
#warp {
  aside {
    background: blue;
    color: white;
  }
}

被導入的局部文件中定義的所有變量和混合器,也會在這個規(guī)則范圍內(nèi)生效逛尚。這些變量和混合器不會全局有效垄惧,這樣我們就可以通過嵌套導入只對站點中某一特定區(qū)域運用某種顏色主題或其他通過變量配置的樣式。
相當于塊級作用域

9. 導入原生css和靜默注釋// 注釋內(nèi)容

把原生css的后綴改為.scss, 即可直接導入(不會產(chǎn)生額外下載)

如果直接導入css.css文件绰寞,會造成瀏覽器解析css時額外的下載

// 這塊注釋內(nèi)容不會出現(xiàn)在生成的css中
/* 這塊會出現(xiàn)在生成的css中 */

10. 混合器創(chuàng)建 @mixin 名字, 調(diào)用 @include 名字

通過sass的混合器大段樣式的重用

// 名字必須語義化, 如下面的為: fillet
// 保證易讀性和可維護性
@mixin fillet {
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}
//調(diào)用
notice {
  border: 2px solid #000;
  @include fillet
}

混合器中可以包含css屬性到逊、規(guī)則選擇器選擇器屬性滤钱,如下代碼:

@mixin no-bullets {
  list-style: none;
  li {
    margin-left: 10px;
  }
}
ul.plain {
  color: #444;
  @include no-bullets;
}

// 解析為
ul.plain { color: #444;  list-style:none }
ul.plain li { margin-left: 10px }

11. 給混合器傳參數(shù)

可以通過在@include混合器時給混合器傳參賦值給變量觉壶,來定制混合器生成的精確樣式

// 可以以$name: 值, 的形式聲明默認值(css屬性值、其他參數(shù)的引用)
@mixin link-colors(
  $normal: #000,
  $hover: #000,
  $visited: #f00
){
  color: $normal;
  &:hover { color: $hover }
  &:visited { color: $visited }
}
//調(diào)用 
p{
  @include link-colors(red)
}
//解析后
p { color: red; }
p:hover { color: #000 }
p:visited { color: #f00 }
  1. 選擇器繼承@extend .class(類名)
.error {
  border: 1px solid red;
  background-color: #000;
}
.seriousError {
  @extend .error;
  border-width: 3px;
}
// 上面代碼相當于 元素2的class="seriousError error" 
元素2會繼承元素1所有的樣式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末菩暗,一起剝皮案震驚了整個濱河市掰曾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌停团,老刑警劉巖旷坦,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異佑稠,居然都是意外死亡秒梅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門舌胶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捆蜀,“玉大人,你說我怎么就攤上這事幔嫂×舅” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵履恩,是天一觀的道長锰茉。 經(jīng)常有香客問我,道長切心,這世上最難降的妖魔是什么飒筑? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任片吊,我火速辦了婚禮,結(jié)果婚禮上协屡,老公的妹妹穿的比我還像新娘俏脊。我一直安慰自己,他們只是感情好肤晓,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布爷贫。 她就那樣靜靜地躺著,像睡著了一般材原。 火紅的嫁衣襯著肌膚如雪沸久。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天余蟹,我揣著相機與錄音,去河邊找鬼子刮。 笑死威酒,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的挺峡。 我是一名探鬼主播葵孤,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼橱赠!你這毒婦竟也來了尤仍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤狭姨,失蹤者是張志新(化名)和其女友劉穎宰啦,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饼拍,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡赡模,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了师抄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漓柑。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叨吮,靈堂內(nèi)的尸體忽然破棺而出辆布,到底是詐尸還是另有隱情,我是刑警寧澤茶鉴,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布锋玲,位于F島的核電站,受9級特大地震影響蛤铜,放射性物質(zhì)發(fā)生泄漏嫩絮。R本人自食惡果不足惜丛肢,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望剿干。 院中可真熱鬧蜂怎,春花似錦、人聲如沸置尔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榜轿。三九已至幽歼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谬盐,已是汗流浹背甸私。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留飞傀,地道東北人皇型。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像砸烦,于是被迫代替她去往敵國和親弃鸦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

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

  • 一幢痘、使用變量 【作用】:你可以把反復使用的css屬性值 定義成變量唬格,然后通過變量名來引用它們,而無需重復書寫這一屬...
    碼代碼的青年閱讀 902評論 0 0
  • 學習Sass(官網(wǎng):Sass)之前需要了解什么是Sass,Sass全稱:Syntactically Awesome...
    haoxilu閱讀 481評論 0 3
  • 很詳細的sass入門指南颜说,學習一下购岗。原文sass入門指南css預處理器已經(jīng)算不上一個新鮮的詞了,當前比較有代表性的...
    hzrWeber閱讀 1,014評論 0 18
  • 聲明變量 定義變量的語法: 在有些編程語言中(如脑沿,JavaScript)聲明變量都是使用關(guān)鍵詞“var”開頭藕畔,但是...
    Junting閱讀 1,464評論 0 6
  • 2015年10月19日1.SASS和SCSS的區(qū)別1)文件擴展名不同,Sass 是以“.sass”后綴為擴展名庄拇,而...
    a0d560da7818閱讀 733評論 0 4