SASS元件開發

wiwi發表於2017-01-03

SASS元件開發

SASS前處理器,增加了css所沒有的程式設計能力,帶來了前端開發的效率提高,以及擴充套件了css的編寫技巧。

元件開發

設計一個表單提示層(包括成功success,警告warning,錯誤等狀態error)元件,css需要定義基本樣式字型(font-)、外內邊距(padding,margin)、顯示方式(display)、邊框(border)以及其他相關的內容,再為單獨的狀態定義需要的樣式。

css元件開發

先定義基本樣式,再對每一個狀態定義一套樣式

每一種狀態文字和邊框顏色需要單獨設定,稍顯繁瑣。後期擴充套件其它狀態,如資訊info、危險dange等,就是工作成本的提高。幸好SASS提供了程式設計能力,為我們解決這種擔憂,提高了工作效率。

sass元件開發

元件是對資料和方法的簡單封裝。

變數預設值!default

先來看一段js的變數宣告程式碼

再看一段sass程式碼,是不是很簡單。

宣告!default,在這裡輸出blue,很有趣吧。簡單說下它的作用:假設變數申明帶有!default,表示此變數為預設值,可被全域性的普通宣告覆蓋。這點還不能體現它的偉大作用。

@mixin應用
  • 先宣告@mixin
  • 在需要的地方使用@include來宣告呼叫mixins。

呼叫功能模組,當前的元件可擴充套件出多個元件樣式。

@include在需要的地方隨意呼叫,不夠規範,後期難以維護。

元件例項
  • 現在我們新建個scss檔案,這裡暫且叫做_tips.scss。

接下來我們要在所需要的檔案,呼叫這個檔案,這個元件就開發完了

問題?

  • 元件是重複可呼叫的,也是對資料和方法的簡單封裝
  • 如果我們對預設的padding為15px不滿意,要改為5px,怎麼弄

重新覆寫

重新覆寫,會產生相同的程式碼,這不是我們想要的元件

修改引數

改變@include的引數,同樣會產生相同的程式碼,也不是我們想要的元件

正確解決方法

這裡就需要使用 !default;特性

變數設計原則

  • 所有變數為預設值,後面加有!default,以方便覆蓋;
  • 有些變數為開關變數,值只能是true或false,可以用來表示是否輸出樣式,應用於相容及控制程式碼;
  • 有些變數為複合變數,一個變數會有幾個值,以減少變數個數。

參考文件

 

相關文章