iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0
Modern Web

菜鳥30日自學SASS及SCSS系列 第 7

【D-7】Sass/SCSS 基本語法-變數(2)

  • 分享至 

  • xImage
  •  

變數資料類型有以下幾種:(較常用的為前三點)
1.數字

$num: 2;
$numsize: 16px;

2.字符串:可以有引號或沒有引號的字符串

$word: "AAA";
$imge: '../../photo.png';

3.顔色

$color-name: green;
$color-num: #FFCC00;
$color-site: rgb(255, 0, 0,0.5);

4.布林類型:true, false
5.空值:null
6.Lists(陣列)
(1.) Lists不僅可以有單一個值,也可以有其他Lists,並用空格或逗號作分隔符,裡面的每個值稱作 item。
例如:
.1em 2em ﹐8em 9em
.(1em 2em) (8em 9em)

!!!特別注意空格需要加上括號,這樣才得以區分是兩個Lists。!!!

以上兩個都是一個Lists包了兩個 Lists。
同樣第一個 item 都是 List 1em 2em,另一個 item 則都是 List 8em 9em

(2.) Lists常用來存放沒有鍵名的變數,當要從Lists裡取得資料時只能透過索引(1, 2, 3, 4)

!!!SASS中的Lists(陣列)是從1開始算起的與一般陣列從0開始算起不同。!!!

(3.) Lists function

  • nth function :可以讀取 lists 內的 item。
  • join function :可以將多個 lists 連結再一起。
  • append function :可以將 items 添加到 lists 內。
  • @each directive: 可以為 list 中的每一個 item 添加樣式。
//scss//
$color: #000, #FFF, #ABC;
p {
    color: nth($color, 9);
}
// 透過 nth() 讀取 Lists 內的 item。

$index: 6;
// 傳入索引變數。

div {  
    color: nth($color, $index);
}

 編|
 譯| 透過 nth(變數,索引) 便能夠取得 List 裡的資料。  
 後|
  V

//css//
p {  
    color: #FFF;
}
div {  
    color: #ABC;
}

7.Maps(物件)
(1.)可以自訂每個資料的鍵名。
(2.)Maps必須要透過括號包著,並用逗號分隔
例如:

$map: (
  key1: value1,
  key2: value2,
  key3: value3,
);

(3.)Maps function (在後續D-27會有更詳細解說)

  • map-get(map, key):找到map裡的值。
  • map-merge(map1, map2):合併多個 map。
  • map-remove(map, key):移除指定的值
  • map-keys(map):列出指定 map 的全部 key
  • map-values(map):列出指定 map 的全部 value
  • map-has-key(map, key):確認 map 中是否有指定 key
  • @each directive:為 map 中的每一個 key/value pair 添加樣式。
//scss//
$linkColor: (
  Red: #ff0303,
  Yellow: #ffe203,
  Green: #03ff1c);
  
p:Yellow {
    color: map-get($linkColor, Yellow);
}
//輸入Yellow跳出顏色。
$Name: Green;

p:active  {
    color: map-get($linkColor, $Name);
}
//輸入一個鍵名名稱變數。

 編|
 譯| 透過 map-get(變數, 鍵名) 取得資料。 
 後|
  V

//css//
p:Yellow {
  color: #ffe203;
}

p:active {
  color: #03ff1c;
}

上一篇
【D-6】 Sass/SCSS 基本語法-變數(1)
下一篇
【D-8】Sass/SCSS 基本語法-巢狀
系列文
菜鳥30日自學SASS及SCSS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言