Sass基礎(chǔ)

在前端開發(fā)中,類似Less审洞,Sass這樣的預(yù)處理器莱睁,變得越來越常見,由于CSS發(fā)展的制約芒澜,使得CSS開發(fā)時(shí),當(dāng)代碼量越來越大创淡,項(xiàng)目變得難以管理和維護(hù)痴晦。
Sass可以讓你使用一些在CSS中沒有的特性,比如變量琳彩,nesting誊酌,mixins,繼承和其他好的特性,讓你編寫CSS變得更加方便露乏。

所以碧浊,學(xué)習(xí)并使用一款CSS預(yù)處理器也漸漸變成一個(gè)前端工程師必不可少的技能。在多個(gè)預(yù)處理器中瘟仿,我選擇了Sass箱锐。

一些基礎(chǔ)

Sass有兩種語法,使用哪一種取決于個(gè)人愛好劳较,只是兩種格式需要對(duì)應(yīng)不同的后綴驹止。

  1. SCSS,本教程使用這個(gè)語法观蜗。這是一個(gè)CSS語法的擴(kuò)展臊恋,這意味著,在CSS中可以使用的功能墓捻,在SCSS中都是同樣的功能抖仅。同時(shí),SCSS支持所有CSS hacks和特定瀏覽器語法砖第。詳細(xì)情況在 這里
  2. SASS,這是比較老的語法撤卢,使用縮進(jìn)代替了大括號(hào),使得寫起來更加快捷厂画,看起來也更清爽

開始使用

當(dāng)安裝好Sass之后凸丸,你可以使用命令 sass --watch app/stylesheets_dirctory

使用變量

你可以使用$來定義變量

$font-stack: Helvetica, sans-serif;

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

經(jīng)過Sass編譯之后,輸出的文件是這樣的:

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

這樣的的話袱院,你就可以在整個(gè)項(xiàng)目中共享一些同樣的變量屎慢,而不必每次重新定義瞭稼,當(dāng)需要做更改的時(shí)候,只有改變變量的值腻惠,在重新編譯之后环肘,使用這個(gè)變量的地方就自動(dòng)更新為新的值了。

嵌套(Nesting)

在HTML里面集灌,各個(gè)元素是可以嵌套的悔雹,而在CSS里,目前還不可以原生支持這樣的功能欣喧,Sass就能幫我們實(shí)現(xiàn)腌零。

nav {
  font-size: 1.5em;
  li {
    display: inline-block;
  }
}

經(jīng)過編譯后:

nav {
  font-size: 1.5em;
}
nav li {
  display: inline-block;
}

Import

Sass提供了Import的功能,你可以把Sass寫到多個(gè)文件唆阿,然后自由組合他們益涧,然后編譯的時(shí)候,他們會(huì)自動(dòng)合并到單個(gè)文件里驯鳖。

// _reset.scss

html,
body,
ul,
ol {
   margin: 0;
  padding: 0;
}
// base.scss

@import 'reset';

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

在編譯之后:

html, body, ul, ol {
  margin: 0;
  padding: 0;
}

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

Mixins

當(dāng)前的瀏覽器闲询,有的特性可能需要你寫不同的前綴,比如 -webkit -moz -ms浅辙,Mixins提供了一個(gè)快捷的方法使你從寫這些煩人的前綴中解放出來扭弧。你可以提供多個(gè)value值來定制自己的Mixin

@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
     -moz-border-radius: $radius;
      -ms-border-radius: $radius;
          border-radius: $radius;
}

.box { @include border-radius(10px); }

在編譯過后:

.box {
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  border-radius: 10px;
}

擴(kuò)展和繼承

這可能是SASS里最有用的一個(gè)功能,它讓你的CSS擁有了繼承的能力记舆,使用@extend這個(gè)關(guān)鍵字繼承一個(gè)CSS集合鸽捻,解決了很多不必要的重復(fù)。直接看官方的例子吧:

.message {
  border: 1px solid #ccc;
  padding: 10px;
  color: #333;
}

.success {
  @extend .message;
  border-color: green;
}

.error {
  @extend .message;
  border-color: red;
}

.warning {
  @extend .message;
  border-color: yellow;
}

在編譯之后:

.message, .success, .error, .warning {
  border: 1px solid #cccccc;
  padding: 10px;
  color: #333;
}

.success {
  border-color: green;
}

.error {
  border-color: red;
}

.warning {
  border-color: yellow;
}

運(yùn)算符

Sass擁有數(shù)學(xué)計(jì)算的功能氨淌,例如+, -, *, /, %

.container { width: 100%; }


article[role="main"] {
  float: left;
  width: 600px / 960px * 100%;
}

aside[role="complementary"] {
  float: right;
  width: 300px / 960px * 100%;
}

在編譯之后:

.container {
  width: 100%;
}

article[role="main"] {
  float: left;
  width: 62.5%;
}

aside[role="complementary"] {
  float: right;
  width: 31.25%;
}

作者注:這篇文章大部分內(nèi)容來自官方入門指南泊愧,需要更多內(nèi)容可以直接看官方文檔。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盛正,一起剝皮案震驚了整個(gè)濱河市删咱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌豪筝,老刑警劉巖痰滋,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異续崖,居然都是意外死亡敲街,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門严望,熙熙樓的掌柜王于貴愁眉苦臉地迎上來多艇,“玉大人,你說我怎么就攤上這事像吻【颍” “怎么了复隆?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長姆涩。 經(jīng)常有香客問我挽拂,道長,這世上最難降的妖魔是什么骨饿? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任亏栈,我火速辦了婚禮,結(jié)果婚禮上宏赘,老公的妹妹穿的比我還像新娘绒北。我一直安慰自己,他們只是感情好察署,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布镇饮。 她就那樣靜靜地躺著,像睡著了一般箕母。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上俱济,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天嘶是,我揣著相機(jī)與錄音,去河邊找鬼蛛碌。 笑死聂喇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蔚携。 我是一名探鬼主播希太,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼酝蜒!你這毒婦竟也來了誊辉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤亡脑,失蹤者是張志新(化名)和其女友劉穎堕澄,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體霉咨,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛙紫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了途戒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坑傅。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖喷斋,靈堂內(nèi)的尸體忽然破棺而出唁毒,到底是詐尸還是另有隱情蒜茴,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布枉证,位于F島的核電站矮男,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏室谚。R本人自食惡果不足惜毡鉴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望秒赤。 院中可真熱鬧猪瞬,春花似錦、人聲如沸入篮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潮售。三九已至痊项,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間酥诽,已是汗流浹背鞍泉。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肮帐,地道東北人咖驮。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像训枢,于是被迫代替她去往敵國和親托修。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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

  • 1恒界、SCSS 是 Sass 的新語法格式睦刃,從外形上來判斷他和 CSS 長得幾乎是一模一樣,代碼都包裹在一對(duì)大括號(hào)里...
    夜幕小草閱讀 1,718評(píng)論 2 10
  • 一仗处、相關(guān)網(wǎng)站地址 Sass官網(wǎng):http://sass-lang.com/眯勾;Sass中文網(wǎng):https://www...
    夏晶晶綠閱讀 852評(píng)論 0 0
  • 本文簡單的介紹SASS預(yù)處理語言,更多的應(yīng)用請(qǐng)參考官方文檔 一婆誓、什么是SASS 二吃环、為什么使用SASS 三、安裝S...
    CharlesDarwin閱讀 443評(píng)論 0 0
  • 江南好洋幻,風(fēng)景舊曾諳郁轻。 日出江花紅勝火, 春來江...
    姑蘇妮子閱讀 660評(píng)論 4 6
  • 很快
    浣花溪上見卿卿閱讀 166評(píng)論 0 0