Sass的資料型別

Sass 語言中支援的資料型別有下面幾種:

numbers

:表示整數型別。

strings

:在單引號

‘’

或雙引號

“”

內定義的字元序列。

booleans

:布林型別,有

true

false

兩個值。

colors

:用於定義顏色值。

nulls

:指定空值,是未知資料。

lists

:值列表型別,表示由空格或逗號分隔的值。

maps

:從一個值對映到另一個值。

numbers 型別

數字在 CSS 中應用的很廣泛,大多數都是結合單位一起使用的,但是在技術上依然算是數字。例如字型大小、長高、外邊距內邊距等。Sass 中也有數字(numbers )型別,數字型別的值可以做一些加減乘除的運算。

示例:

例如定義一個變數

$num

,給這個變數賦一個數字型別的值:

$num:24px;。xkd{ font-size: $num - 4; padding: $num + 6px; width: $num * 5; border-radius: $num / 6;}

編譯成 CSS 程式碼:

。xkd { font-size: 20px; padding: 30px; width: 120px; border-radius: 4px;}

上述程式碼中,我們可以對這個變數進行加減乘除運算。但是需要注意,在使用數字型別進行計算時,如果值的單位不相容會導致報錯,例如

12px + 2em

,執行程式碼後會報錯

Error: Incompatible units: ‘em’ and ‘px’。

,告訴我們單位不相容。

string 型別

Sass 中的字串可以使用單引號

‘’

或者雙引號

“”

包圍,例如

“hello”

‘hello’

,即使包圍的是一個空格,也算是字串。字串也可以不使用引號包圍,例如

hello

,也表示一個字串。

示例:

我們定義一個字串型別的變數:

$msg:“hello”;。one{ content: $msg; 。two{ content: $msg + ‘ ’ + summer; }}

編譯成 CSS 程式碼:

。one { content: “hello”;}。one 。two { content: “hello summer”;}

booleans 型別

booleans

型別為布林型別,此型別只有兩個值,即

true

false

。在 Sass 中,只有當值為

false

或者

null

時,才會返回

false

。其他的一切值都會返回

true

示例:

。one{ a:type-of(true); b:type-of(false); c:type-of(10); d:type-of(null);}

編譯成 CSS 程式碼:

。one { a: bool; b: bool; c: number; d: null;}

上述程式碼中的

type-of()

函式用於檢測一個值的資料型別,可以看到只有

true

false

兩個值的資料型別為布林值。

color 型別

Sass 中的

color

型別表示顏色型別,可以包括所有的顏色值,例如十六進位制顏色值、顏色名稱、

rgb

rgba

hsl

hsla

等。

示例:

$color1:pink;。one{ color: $color1; background-color: $color1 + blue;}

編譯成 CSS 程式碼:

。one { color: pink; background-color: #ffc0ff;}

從上述程式碼中可以看出,顏色值也是可以計算的,在進行計算時會先將顏色值轉換為十六進位制值,然後進行計算。

nulls型別

null

型別是 Sass 中最基本的資料型別,表示一個空值,也就是說沒有任何值。雖然說

null

表示什麼都沒有,但是當我們使用

length()

函式返回長度時,返回值為1。這是因為

null

仍然表示的是一個真實存在的實體,只不過它不代表任何值。

示例:

$var:null;。one{ type: type-of($var); length:length($var);}

編譯成 CSS 程式碼:

。one { type: null; length: 1;}

lists型別

Sass 中的列表型別是由空格或者逗號分隔的一系列的值。

示例:

$padding: 10px 20px 30px 40px;$font:Arial,sans-serif,Helvetica;。one{ padding: $padding; font-family: $font;}

編譯成 CSS 程式碼:

。one { padding: 10px 20px 30px 40px; font-family: Arial, sans-serif, Helvetica;}

列表中除了可以包含簡單的值,還可以巢狀列表,例如下面這個列表就表示含有三個值,而不是四個值:

$list: 1, 2 100, 3;

等同於:

$list: 1, (2 100), 3;

maps型別

在 Sass 中,

maps

型別表示對映型別。常以鍵值對(key/value)的形式出現。在定義對映時,整個對映必須透過小括號

()

括起來,值與值之間使用逗號分隔。

maps

中,一個給定的

key

只能有一個相關的

value

,但一個給定的

value

可以被對映到許多不同的

key

上。

value

值可以是任何資料型別,包括

maps

示例:

$color-map: (color1: #fa0000, color2: #fbe200, color3: #95d7eb);。one{ color: map-get($color-map,color1); background-color: map-get($color-map, color2);}

編譯成 CSS 程式碼:

。one { color: #fa0000; background-color: #fbe200;}

上述程式碼中,建立了一個名為

$color-map

的對映,這個對映中有三個鍵值對,分別為不同的 CSS 顏色值。其中

map-get

函式用於提供對映的值,可以接受兩個引數,第一個引數為對映名稱,第二個引數為需要取的

key

值。