sass學習——SassScript

來源:互聯網
上載者:User
文章目錄
  • 1.SassScript變數聲明
  • 2.變數調用
  • 3.SassScript資料類型
  • 4.SassScript運算子
  • 5.插值語句:#{ }
  • 6. 變數定義 !default
1.SassScript變數聲明

——SassScript的變數以“$”開頭:

$width: 5em;
2.變數調用

——嵌套規則內的變數只能在規則內使用,嵌套規則外的變數可被其他規則調用

#main {width: $width;}
3.SassScript資料類型

——SassScript 支援六種不同的資料類型,有數字(包括有單位,如px的和無單位的),字串(雙引號,單引號,無引號),顏色,空值,布爾型(null),值列表(用空格或逗號分開);同時SassScript也支援css屬性,並將他們視為無引號字串(unquoted strings)

字串:SassScript在編譯css檔案時不會改變其類型,除了使用插值語句#{ },將有符號字串編譯為無符號字串;

——字串間可通過“+”來串連,有引號字串(+ 左側)連結無引號字串,運算結果有引號的,無引號字串(+ 左側)連結有引號字串,運算結果則沒引號。

——在文本字串中 #{ } 插值語句可以被用來添加動態值:content: "I ate #{5 + 10} pies!"; ==> content: "I ate 15 pies!"; 空的值被視作插入了Null 字元串;

布爾型:SassScript 支援布爾型的 and or 以及 not 運算。

值列表:是指 Sass 如何處理 CSS 中 margin: 10px 15px 0 0 或者 font-face: Helvetica, Arial, sans-serif 這樣通過空格或者逗號分隔的一系列的值。

——獨立的值也被視為值列表——只包含一個值的值列表。

——值列表中可以包含值列表,若使用同樣的分隔方式要用括弧分隔開

——如果值列表中包含空的值列表或空值,編譯時間將清除空值,比如 1px 2px () 3px 或 1px 2px null 3px

——不支援任何運算方式,只能用function控制

nth function 可以直接存取值列表中的某一項

join function 可以將多個值列表連結在一起

append function 可以在值列表中添加值

@each rule 則能夠給值列表中的每個項目添加樣式

顏色:SassScript中顏色可進行運算,顏色值的運算是分段計算進行的,也就是分別計算紅色,綠色,以及藍色的值:

——數字與顏色值之間也可以進行算數運算,分成3個兩位分別與數字進行運算

——顏色值包含 alpha channel(rgba 或 hsla 兩種顏色值),必須擁有相等的 alpha 值才能進行運算,因為算術運算不會作用於 alpha 值。

4.SassScript運算子

相等運算子 == 或 !=,所有資料類型都支援;

數字運算子 (Number Operations):加減乘除、取整等運算 (+, -, *, /, %),可在不同單位間轉換

——SassScript中的"/"有分割資料和除法的功能,預設是分隔資料,視為除法的三種情況:

1.值或值的一部分是變數;$width/2;

——若需要使用變數又不要做除法運算可用#{ }包裹變數,即#{$font-size}/#{$line-height};

2.值被括弧包裹;(500px/2); 

3.值是算術運算式的一部分;5px + 8px/2px

布爾運算 (Boolean Operations)符: and or 以及 not ;

關係運算子 <, >, <=, >=;

括弧:影響運算順序;

5.插值語句:#{ }

通過 #{ } 插值語句可以在選取器或屬性名稱中使用變數;

使用 #{ } 可以避免 Sass 運行運算運算式,直接編譯 CSS;

$font-size:12px;$font-height:30px;$name:foo;$attr:font;p .#{$name}{};#{$attr}-size:12px;font:#{$font-size}/#{$font-height};
6. 變數定義 !default

$content: "First content";
$content: "Second content?" !default;
$new_content: "First time reference" !default;

!default添加在變數的結尾,如果該變數還未賦值,這將該值賦值給這個變數,若變數已被賦值,則變數的值為原來的值

$content: null;
$content: "Non-null content" !default;

若變數為空白值null時,將被 !default定義的變數賦值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.