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
值。