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; }
时间: 2024-12-10 00:28:54

Sass 基本函数的相关文章

gulp教程(sass,livereload,md5,css压缩,js压缩,img的base64)

环境 node -v  v6.10.3 npm -v  3.10.10 package.json如下: { "name": "zhcsdata", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": &

LSEE和SASS的区别

/Less中的注释,但这种不会被编译/* * 这也是Less中的注释,但是会被编译 *  * [Less中的变量] *  * 1.声明变量:@变量名:变量值: *   使用变量:@变量名 *  *  >>>Less中变量的类型: *  ①数字类         ①10px   ②字符串:无引号字符串 red        有引号字符串   "haha" *  ②颜色类red  #000000   rgb()    ③值列表类型:用逗号或空格分割     10px so

sass语法基础知识

文件后缀名 sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号:另一种就是我们这里使用的scss文件,这种和我们平时写的css文件格式差不多,使用大括号和分号.而本教程中所说的所有sass文件都指后缀名为scss的文件.在此也建议使用后缀名为scss的文件,以避免sass后缀名的严格格式要求报错. //文件后缀名为sass的语法 body background: #eee font-size:12px p background: #0982c1 //文件后缀名为scss的语法 b

sass学习笔记(五):sass的运算

(一).加法 加法运算是 Sass 中运算中的一种,在变量或属性中都可以做加法运算.如: .box {   width: 20px + 8in; } 编译出来的 CSS: .box {   width: 788px; } 但对于携带不同类型的单位时,在 Sass 中计算会报错,如下例所示: .box {   width: 20px + 1em; } 编译的时候,编译器会报错:"Incompatible units: 'em' and 'px'." (二).减法 Sass 的减法运算和加

10天精通Sass 之 处理字符串与数字的函数

Sass的函数简介 Sass中自备了一系列的功能函数,包括: - 字符串函数 - 数字函数 - 列表函数 - 颜色函数 - Introspection函数 - 三元函数 除了Sass中已提供的函数,我们还可以根据自己的需求定义函数,称为自定义函数. 字符串函数 * unquote($string) * :删除字符串中的引号 * quote($string) * :给字符串加引号 unquote()函数 用来删除字符串的引号,如果这个字符串没有引号,则返回原始字符串. .test1 { conte

SASS详解之沿袭(extend)

SASS详解之继承(extend) 每一个类名都有可能有另一个类名的所有样式和它自己的特定样式的.当一个div的身上有两个类名,一个是“one”,另一个是“two”的时候.如下 HTML代码 <div class="one two"> 梦龙小站 </div> CSS代码 .one {width:100px;height:100px;} .two {background:red;border:5px solid #000;} 这就意味着,我们要配备一个很好的记忆力

Sass 和 SCSS 有什么区别?

Sass 和 SCSS 其实是同一种东西,我们平时都称之为 Sass,两者之间不同之处有以下两点: 文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名 语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似. Sass 语法 $font-stack: Helvetica, sans-serif //定义变量 $primary-color: #33

LESS 与 SASS

作为 CSS 的一种扩展,Less 不仅完全兼容 CSS 语法,而且连新增的特性也是使用 CSS 语法.这样的设计使得学习 Less 很轻松,而且你可以在任何时候回退到 CSS. 用less来控制样式,更加的方便,写好的less代码,可以通过编译生成css,这是对css非常强大的扩展,让我们写起代码时,更加的顺畅. 变量,在less中声明变量用@,例如: @test: red; .test{ color: @test; } 编译后: .test{ color: red; } 注:变量只能定义一次

SASS环境搭建及HBuilder中sass预编译配置

---------------------------------Ruby安装-------------------------------- 1.先下载一个ruby的安装文件:文件名可以搜索:rubyinstaller-2.3.1-x64 如图: 2.建议装到c盘(这里记住你的安装地址,后期有用) 3.勾选中间的path 然后就一路"南下",直到看到finish 4.win7系统的在左下角输入start,定位到Start Command Prompt with Ruby面板并调出 5