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