CSS先行編譯器:Sass(入門),更快的前端開發

來源:互聯網
上載者:User

標籤:列表   sass   extend   style   ted   產生   clu   展開   xtend   

Sass 擴充了 CSS3,增加了規則、變數、混入、選取器、繼承等等特性。Sass 產生良好格式化的 CSS 代碼,易於組織和維護。

SASS是對CSS3(層疊樣式表)的文法的一種擴充,它可以使用巢狀、混入、選擇子繼承等功能,可以更有效有彈性的寫出Stylesheet。Sass最後還是會編譯出合法的CSS讓瀏覽可以使用,也就是說它本身的文法並不太容易讓瀏覽器識別(雖然它和CSS的文法非常的像,幾乎一樣),因為它不是標準的CSS格式,在它的文法內部可以使用動態變數等,所以它更像一種極簡單的動態語言。 sass 入門 api文法
1.[Sass]常見的編譯錯誤
 在編譯 Sass 代碼時常常會碰到一些錯誤,讓編譯失敗。這樣的錯誤有系統造成的也有人為造成的,但大部分都是人為過失引起編譯失敗。 而最為常見的一個錯誤就是字元編譯引起的。在Sass的編譯的過程中,是不是支援“GBK”編碼的。所以在建立 Sass 檔案時,就需要將檔案編碼設定為“utf-8”。 另外一個錯誤就是路徑中的中文字元引起的。建議在項目中檔案命名或者檔案目錄命名不要使用中文字元。而至於人為失誤造成的編譯失敗,在編譯過程中都會有具體的說明,大家可以根據編譯器提供的錯誤資訊進行對應的修改。 
2.[Sass]不同樣式風格的輸出方法
 - 嵌套輸出方式 nested- 展開輸出方式 expanded- 緊湊輸出方式 compact- 壓縮輸出方式 compressed 
3.[Sass]聲明變數
 

 

 
4.[Sass]普通變數與預設變數
  全域變數

 

 

預設變數 
5.[Sass]變數的調用
 在 Sass 中聲明了變數之後,就可以在需要的地方調用變數。調用變數的方法也非常的簡單。 .btn-primary {
  background-color: $btn-primary-bg;
  color: $btn-primary-color;
  border: 1px solid $btn-primary-border;} 
6.[Sass]局部變數和全域變數
 $color:orange !default;當在局部範圍(選取器內、函數內、混合宏內...)聲明一個已經存在於全域範圍內的變數時,局部變數就成為了全域變數的影子。基本上,局部變數只會在局部範圍內覆蓋全域變數。 
7.[Sass]嵌套-選取器嵌套
 - 選取器嵌套- 屬性嵌套- 偽類嵌套

 

 
8.[Sass]嵌套-屬性嵌套
 .box {
  border: {
  top: 1px solid red;
  bottom: 1px solid green;
  }} 
9.[Sass]嵌套-偽類嵌套
 

 

 

  
10.[Sass]混合宏-聲明混合宏
  

 

 

 

 
11.[Sass]混合宏-調用混合宏
 匹配了一個關鍵詞“@include”來調用聲明好的混合宏      混合宏的參數--傳一個帶值的參數 .box {
  @include border-radius(50%);}      混合宏的參數--傳多個參數 @mixin center($width,$height){@include center(500px,300px); 
12.[Sass]擴充/繼承
 在 Sass 中也具有繼承一說,也是繼承類中的樣式代碼塊。在 Sass 中是通過關鍵詞 “@extend”來繼承已存在的類樣式塊,從而實現代碼的繼承。如下所示:

 

 

  
13.[Sass]預留位置 %placeholder
 Sass 中的預留位置 %placeholder 功能是一個很強大,很實用的一個功能,這也是我非常喜歡的功能。他可以取代以前 CSS 中的基類造成的代碼冗餘的情形。因為 %placeholder 聲明的代碼,如果不被 @extend 調用的話,不會產生任何代碼。來看一個示範: 

 

 
14.[Sass]混合宏 VS 繼承 VS 預留位置
  個人建議:如果你的代碼塊中涉及到變數,建議使用混合宏來建立相同的代碼塊。 個人建議:如果你的代碼塊不需要專任何變數參數,而且有一個基類已在檔案中存在,那麼建議使用 Sass 的繼承。

 

 
15.[Sass]插值#{}
 當你想設定屬性值的時候你可以使用字串插入進來。  #{}文法並不是隨處可用,你也不能在 mixin 中調用 

 

 
16.[Sass]注釋
 1、類似 CSS 的注釋方式,使用 ”/* ”開頭,結屬使用 ”*/ ”2、類似 JavaScript 的注釋方式,使用“//” 兩者區別,前者會在編譯出來的 CSS 顯示,後者在編譯出來的 CSS 中不會顯示, 
17.[Sass]資料類型
 

 

 

        [Sass]字串 

 

 

             [Sass]值列表  

 

 

 
18.[Sass運算]加法-----------------Sass的基本特性-運算----------
 .box {
  width: 20px + 8in;}編譯的結果.box {
  width: 788px;} 不同類型的單位時,編譯也會報錯      [Sass運算]減法 .content {
  width: $full-width -  $sidebar-width;}          [Sass運算]乘法 Sass 中的乘法運算和前面介紹的加法與減法運算還略有不同。雖然他也能夠支援多種單位(比如 em ,px , %),但當一個單位同時聲明兩個值時會有問題。 .box {  width:10px * 2px;}錯誤 .box {
  width: 10px * 2;}正確           [Sass運算]除法 .box {
  width: (100px / 2); } “/”不能單獨用      [Sass運算]數字運算 .box {
  width: ((220px + 720px) - 11 * 20 ) / 12 ; }          [Sass運算]顏色運算 color: #010203 * 2;color: #010203 + #040506;      [Sass運算]字元運算  

 

 

 注意,如果有引號的字串被添加了一個沒有引號的字串 (也就是,帶引號的字串在 + 符號左側), 結果會是一個有引號的字串。 同樣的,如果一個沒有引號的字串被添加了一個有引號的字串 (沒有引號的字串在 + 符號左側), 結果將是一個沒有引號的字串。 例如:      

CSS先行編譯器:Sass(入門),更快的前端開發

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.