Sass 基本函數

來源:互聯網
上載者:User

標籤:

Sass 中的常用函數

一、字串函數

  1. unquote($string): 刪除字串前後的引號,刪除一對引號,如果這個字串沒有帶有引號,將返回原始的字串。

    樣本:

.text1 {    content: unquote("‘hello‘");}

 

  2. quote($string): 給字串添加引號,而且字串中間有單引號或者空格時,需要用單引號或雙引號括起,否則編譯的時候將會報錯(解決方案就是去掉空格,或者加上引號)。同時 quote() 碰到特殊符號,比如: !、?、> 等,除中折號 - 和 底線_ 都需要使用雙引號括起,否則編譯器在進行編譯的時候同樣會報錯.

    樣本:

.text2 {    content: quote(hello-word);}

 

  3. 大小寫轉換

    to-upper-case($string);//轉大寫
          to-lower-case($string);//轉小寫

  樣本:

.text3 {    text: to-upper-case(aAaA);    text: to-lower-case(aAaA);}

 

二、 數字函數

    1. percentage($value):將一個不帶單位的數轉換成百分比值;
      2. round($value):將數值四捨五入,轉換成一個最接近的整數,可以帶單位;
      3. ceil($value):向上舍入為整數,可以帶單位;
      4. floor($value):將一個數去除他的小數部分,可以帶單位;
      5. abs($value):返回一個數的絕對值,可以帶單位;
      6. min($numbers…):找出幾個數值之間的最小值,可以帶同類型單位;
      7. max($numbers…):找出幾個數值之間的最大值,可以帶同類型單位;
      8. random(): 擷取隨機數

  樣本:

 1 .header { 2     width: percentage(.2);//20% 3     height: percentage(2px / 3px);//66.66667% 4  5     margin: round(3.2px);//3px 6  7     padding: ceil(2.1px);//3px 8  9     border-width: floor(3.9px);//3px10 11     font-size: abs(-10px);//10px12 13     top: min(5px, 10px, 20px, 2px);//2px14     left: max(5px, 10px, 20px, 2px);//20px15 16     border-radius: floor(random()*10px);//這個值真是不知道怎麼說17 }

 

三、 列表函數

    1. length($list):返回一個列表的長度值,函數中的列表參數之間使用空格隔開,不能使用逗號,否則函數將會出錯;
      2. nth($list, $n):返回一個列表中指定的某個標籤值,索引從1開始,$n必須大於0,不然報錯(SyntaxError: List index 0 must be a non-zero integer for `nth‘)
      3. join($list1, $list2, [$separator]):將兩個列給串連在一起,變成一個列表;
      4. append($list1, $val, [$separator]):將某個值放在列表的最後;
      5. zip($lists…):將幾個列表結合成一個多維的列表;
      6. index($list, $value):返回一個值在列表中的位置值。

  樣本:

$list:1px,2px,3px,4px,5px;h1 {    font-size: length($list);//5    line-height: nth($list,3);    margin: index($list,5px);}

 

  輸出:

1 h1 {2   font-size: 5;3   line-height: 3px;4   margin: 5; }

 

    join() 只能將兩個列表串連成一個列表,如果直接連接兩個以上的列表將會報錯(SyntaxError: $separator: (#ddeeee #eeffff) is not a string for `join‘)
    選擇性參數 $separator; 定義列表元素的分隔字元;預設auto 自動識別;comma 使用,分割;space 使用空格分隔;

  樣本:

 1 h2 { 2     content: join($list,(6px,7px,8px),space);//返回新字串 3 } 4 h3 { 5     content: append($list,9px); 6 } 7 h4{ 8     //zip()函數中每個單一列表的值對應的取其相同位置值: 9     content: zip((1px 2px 3px),(solid dashed dotted),(green blue red));10 }

 

  輸出:

1 h2 {2   content: 1px 2px 3px 4px 5px 6px 7px 8px; }3 4 h3 {5   content: 1px, 2px, 3px, 4px, 5px, 9px; }6 7 h4 {8   content: 1px solid green, 2px dashed blue, 3px dotted red; }

 

四、 Introspection函數 包含幾個判斷類型函數

    1. type-of($value):返回一個值的類型
           傳回值:
              number 為數值型。
              string 為字串型。
              bool 為布爾型。
              color 為顏色型。
      2. unit($number):返回一個值的單位;
      3. unitless($number):判斷一個值是否帶有單位,不帶返回true,帶單位返回false
      4. comparable($number-1, $number-2):判斷兩個值是否可以做加、減和合并;可以返回true,不可以反悔false

  樣本:

h1{    content: type-of(true);//bool}

 

五、 Miscellaneous 函數

  三元條件函數,他有兩個值,當條件成立返回一種值,當條件不成立時返回另一種值:if($condition,$if-true,$if-false)

  樣本:

.text4 {    padding: if(true,2px,3px);}

 

  輸出:

.text4 {  padding: 2px; }

 

六、 map 類型

  Sass中的map 常常被稱為資料地圖,又有人稱其為數組,應為他總是以 key:value 成對出現,更像是一個JSON資料

  樣本:

$color: (    default: #fff,    primary: #22ae39,    negative: #d9534f    );

 

  map 的函數功能。Sass中map內建七個函數
    1. map-get($map, $key): 根據key值,返回map中的相關的值
    2. map-merge($map1, $map2): 將兩個 map 合并成一個新的 map
    3. map-remove($map, $key): 從map中刪除一個key,返回一個新的map
    4. map-keys($map): 返回 map 中所有的key
    5. map-values($map): 返回 map 中所有的value
    6. map-has-key($map, $key): 根據給定的 key 值判斷map是否有對應的value值,如果有返回true,否則返回false
    7. keywords($args): 返回一個函數的參數,這個參數可以動態設定key和value

  map-get($map, $key) 樣本:

 1 $social-colors: ( 2         dribble: #ea4c89, 3         facebook: #3b5998, 4         github: #171515, 5         google: #db4437, 6         twitter: #55acee 7     ); 8 .btn-dribble{ 9     color: map-get($social-colors, facebook);10       //如果 $key 不在 $map 中,不會編譯出 CSS,其實 map-get 返回了一個 null 值。11       background-color: map-get($social-colors, weibo);12 }

 

/** map-get($map, $key) 樣本*/.btn-dribble {  color: #3b5998; }

 

  map-has-key($map, $key) 樣本:

 1 /*定義一個函數判斷 $key 是否在 $map 中 否則報錯*/ 2 @function colors($color){ 3     @if not map-has-key($social-colors, $color){ 4         @warn "No color found for #{$color} in $social-colors map. Property omitted."; 5     } 6     @return map-get($social-colors, $color); 7 } 8  9 .btn-dribble {10     color: colors(dribble);11 }12 .btn-facebook {13     color: colors(facebooks);14 }

 

  輸出:

.btn-dribble {  color: #ea4c89; }

 

Sass 基本函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.