初識(shí)Sass

Sass 是一款強(qiáng)化 CSS 的輔助工具,它在 CSS 語法的基礎(chǔ)上增加了變量 (variables)、嵌套 (nested rules)、混合 (mixins)、導(dǎo)入 (inline imports) 等高級(jí)功能,這些拓展令 CSS 更加強(qiáng)大與優(yōu)雅。使用 Sass 以及 Sass 的樣式庫(如 Compass)有助于更好地組織管理樣式文件,以及更高效地開發(fā)項(xiàng)目。

1. 特色功能 (Features)

  • 完全兼容 CSS3
  • 在 CSS 基礎(chǔ)上增加變量、嵌套 (nesting)、混合 (mixins) 等功能
  • 通過函數(shù)進(jìn)行顏色值與屬性值的運(yùn)算
  • 提供控制指令 (control directives)等高級(jí)功能
  • 自定義輸出格式

2.CSS 功能拓展 (CSS Extensions)

2.1. 嵌套規(guī)則 (Nested Rules)

#main p {
  color: #00ff00;
  width: 97%;
  .redbox {
    background-color: #ff0000;
    color: #000000;
  }
}

編譯為

#main p {
  color: #00ff00;
  width: 97%; }
  #main p .redbox {
    background-color: #ff0000;
    color: #000000; }

2.2. 父選擇器 & (Referencing Parent Selectors: &)

在嵌套 CSS 規(guī)則時(shí),有時(shí)也需要直接使用嵌套外層的父選擇器,例如,當(dāng)給某個(gè)元素設(shè)定 hover 樣式時(shí),或者當(dāng) body 元素有某個(gè) classname 時(shí),可以用 & 代表嵌套規(guī)則外層的父選擇器。

a {
  font-weight: bold;
  text-decoration: none;
  &:hover { text-decoration: underline; }
  body.firefox & { font-weight: normal; }
}

2.3. 屬性嵌套 (Nested Properties)

有些 CSS 屬性遵循相同的命名空間 (namespace),比如 font-family, font-size, font-weight 都以 font 作為屬性的命名空間。為了便于管理這樣的屬性,同時(shí)也為了避免了重復(fù)輸入,Sass 允許將屬性嵌套在命名空間中,例如:

.funky {
  font: {
    family: fantasy;
    size: 30em;
    weight: bold;
  }
}

3.SassScript

在 CSS 屬性的基礎(chǔ)上 Sass 提供了一些名為 SassScript 的新功能。 SassScript 可作用于任何屬性,允許屬性使用變量、算數(shù)運(yùn)算等額外功能。

通過 interpolation,SassScript 甚至可以生成選擇器或?qū)傩悦?,這一點(diǎn)對(duì)編寫 mixin 有很大幫助。

3.1. 變量 $ (Variables: $)

SassScript 最普遍的用法就是變量,變量以美元符號(hào)開頭,賦值方法與 CSS 屬性的寫法一樣:

$width: 5em;

直接使用即調(diào)用變量:

#main {
  width: $width;
}

變量支持塊級(jí)作用域,嵌套規(guī)則內(nèi)定義的變量只能在嵌套規(guī)則內(nèi)使用(局部變量),不在嵌套規(guī)則內(nèi)定義的變量則可在任何地方使用(全局變量)。將局部變量轉(zhuǎn)換為全局變量可以添加 !global 聲明:

#main {
  $width: 5em !global;
  width: $width;
}

#sidebar {
  width: $width;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、LESS的官網(wǎng):http://lesscss.org 2、Sass官網(wǎng)地址:http://sass-lang....
    Howie223閱讀 3,940評(píng)論 0 5
  • 前言 什么是CSS預(yù)處理器 定義:CSS預(yù)處理器定義了一種新的語言,其基本思想是,用一種專門的編程語言,為CSS增...
    SA_Arthur閱讀 3,208評(píng)論 0 18
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,803評(píng)論 1 45
  • 聲明變量 定義變量的語法: 在有些編程語言中(如,JavaScript)聲明變量都是使用關(guān)鍵詞“var”開頭,但是...
    Junting閱讀 1,529評(píng)論 0 6
  • 1、SCSS 是 Sass 的新語法格式,從外形上來判斷他和 CSS 長得幾乎是一模一樣,代碼都包裹在一對(duì)大括號(hào)里...
    夜幕小草閱讀 1,808評(píng)論 2 10

友情鏈接更多精彩內(nèi)容