Sass 基本函数

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);//3px
10 
11     font-size: abs(-10px);//10px
12 
13     top: min(5px, 10px, 20px, 2px);//2px
14     left: max(5px, 10px, 20px, 2px);//20px
15 
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; }

 

posted @ 2015-11-18 22:16  Medeor  阅读(1461)  评论(0编辑  收藏  举报