Sass運算

加法
在 CSS 中能作運算的,到目前爲止僅有 calc() 函數可行。在 Sass 中,運算只是其基本特性之一。在 Sass 中能夠作各類數學計算。
加法運算是 Sass 中運算中的一種,在變量或屬性中均可以作加法運算。如:ide

1 .box {
2  width: 20px + 8in;
3 }

編譯出來的 CSS:函數

1 .box {
2  width: 788px;
3 }

對於攜帶不一樣類型的單位時,在 Sass 中計算會報錯,以下例所示:spa

1 .box {
2  width: 20px + 1em;
3 }

編譯的時候,編譯器會報錯:「Incompatible units: 'em' and ‘px'.」code

 

 

 

減法
Sass的減法運算和加法運算相似blog

1 $full-width: 960px; 2 $sidebar-width: 200px; 3 .content {
4  width: $full-width - $sidebar-width;
5 }

編譯出來的 CSS 以下:字符串

1 .content {
2  width: 760px;
3 }

一樣的,運算時碰到不一樣類型的單位時,編譯也會報錯編譯器

 

 

 

乘法
Sass 中的乘法運算和前面介紹的加法與減法運算還略有不一樣。雖然他也可以支持多種單位(好比 em ,px , %),但當一個單位同時聲明兩個值時會有問題數學

1 .box {
2  width:10px * 2px; 
3 }

編譯的時候報「20px*px isn't a valid CSS value.」錯誤信息。
若是進行乘法運算時,兩個值單位相同時,只須要爲一個數值提供單位便可。上面的示例能夠修改爲:it

1 .box {
2  width: 10px * 2;
3 }

編譯出來的 CSS:編譯

1 .box {
2  width: 20px;
3 }

Sass 的乘法運算和加法、減法運算同樣,在運算中有不一樣類型的單位時,也將會報錯。以下面的示例:

1 .box {
2  width: 20px * 2em;
3 }

編譯時報「40em*px isn't a valid CSS value.」錯誤信息。

 

 

 

除法
Sass 的乘法運算規則也適用於除法運算。不過除法運算還有一個特殊之處。衆所周知「/」符號在 CSS 中已作爲一種符號使用。所以在 Sass 中作除法運算時,直接使用「/」符號作爲除號時,將不會生效,編譯時既得不到咱們須要的效果,也不會報錯。一塊兒先來看一個簡單的示例:

1 .box {
2  width: 100px / 2; 
3 }

編譯出來的 CSS 以下:

1 .box {
2  width: 100px / 2;
3 }

要修正這個問題,只須要給運算的外面添加一個小括號( )便可:

1 .box {
2  width: (100px / 2); 
3 }

編譯出來的 CSS 以下:

1 .box {
2  width: 50px;
3 }

除了上面狀況帶有小括號,「/」符號會看成除法運算符以外,若是「/」符號在已有的數學表達式中時,也會被認做除法符號。以下面示例:

1 .box {
2  width: 100px / 2 + 2in; 
3 }

編譯出來的CSS:

1 .box {
2  width: 242px;
3 }

當用變量進行除法運算時「/」符號也會自動被識別成除法,以下例所示:

1 $width: 1000px; 2 $nums: 10; 3 .item {
4  width: $width / 10; 
5 }
6 .list {
7  width: $width / $nums;
8 }

編譯出來的CSS:

1 .item {
2  width: 100px;
3 }
4 .list {
5  width: 100px;
6 }

」/  」符號被看成除法運算符時有如下幾種狀況:

•    若是數值或它的任意部分是存儲在一個變量中或是函數的返回值。
•    若是數值被圓括號包圍。
•    若是數值是另外一個數學表達式的一部分。

1 //SCSS 2 p {
3  font: 10px/8px; // 純 CSS,不是除法運算 4  $width: 1000px;
5  width: $width/2; // 使用了變量,是除法運算 6  width: round(1.5)/2; // 使用了函數,是除法運算 7  height: (500px/2); // 使用了圓括號,是除法運算 8  margin-left: 5px + 8px/2px; // 使用了加(+)號,是除法運算 9 }

編譯出來的CSS:

1 p {
2  font: 10px/8px;
3  width: 500px;
4  height: 250px;
5  margin-left: 9px;
6 }

Sass 的除法運算還有一個狀況。在乘法運算時,若是兩個值帶有相同單位時,作乘法運算時,出來的結果並非咱們須要的結果。但在除法運算時,若是兩個值帶有相同的單位值時,除法運算以後會獲得一個不帶單位的數值。以下所示:

1 .box {
2  width: (1000px / 100px);
3 }

編譯出來的CSS以下:

1 .box {
2  width: 10;
3 }

 

 

 

變量計算
在 Sass 中除了能夠使用數值進行運算以外,還能夠使用變量進行計算。

1 $content-width: 720px; 2 $sidebar-width: 220px; 3 $gutter: 20px; 4 .container {
5  width: $content-width + $sidebar-width + $gutter;
6  margin: 0 auto;
7 }

編譯出來的CSS

1 .container {
2  width: 960px;
3  margin: 0 auto;
4 }

 

 

 

數字運算
在 Sass 運算中數字運算是較爲常見的,數字運算包括前面介紹的:加法、減法、乘法和除法等運算。並且還能夠經過括號來修改他們的運算前後順序。和咱們數學運算是同樣的,

示例:

1 .box {
2  width: ((220px + 720px) - 11 * 20 ) / 12 ; 
3 }

編譯出來的 CSS:

1 .box {
2  width: 60px;
3 }

 

 

 

顏色運算
全部算數運算都支持顏色值,而且是分段運算的。也就是說,紅、綠和藍各顏色分段單獨進行運算。如:

1 p {
2  color: #010203 + #040506;
3 }

計算公式爲 01 + 04 = 0502 + 05 = 0703 + 06 = 09, 而且被合成爲:
如此編譯出來的 CSS 爲:

1 p {
2  color: #050709;
3 }

算數運算也能將數字和顏色值 一塊兒運算,一樣也是分段運算的。如:

1 p {
2  color: #010203 * 2;
3 }

計算公式爲 01 * 2 = 0202 * 2 = 04 03 * 2 = 06, 而且被合成爲:

1 p {
2  color: #020406;
3 }

 

 

 

字符運算

1 $content: "Hello" + "" + "Sass!"; 2 .box:before {
3  content: " #{$content} "; 4 }

編譯出來的CSS:

1 .box:before {
2  content: " Hello Sass! ";
3 }

除了在變量中作字符鏈接運算以外,還能夠直接經過 +,把字符鏈接在一塊兒:

1 div {
2  cursor: e + -resize;
3 }

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

1 p:before {
2  content: "Foo " + Bar;
3  font-family: sans- + "serif";
4 }

編譯出來的 CSS:

1 p:before {
2  content: "Foo Bar";
3  font-family: sans-serif; 
4 }
相關文章
相關標籤/搜索