好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Sass四种数字运算详细介绍

在Sass中,共有4种数字运算:

(1)加法; (2)减法; (3)乘法; (4)除法;

这4种运算方式,我们在其他编程语言(如JavaScript)也能看到,但是Sass的这4种运算不太一样,还是有不少我们需要注意的地方。所以在这一节中,小伙伴们要细心留意一下。

 

一、Sass加法

在Sass中,做加法运算时,数值可以带单位,但是需要运算单位相同。如果不相同就会报错,编译不通过。

举例1:运算单位相同

 div
{
    width:(100px + 20px);
} 

编译出来的CSS代码如下:

 div
{
    width:120px;
} 

分析:

由于[100px]和[20px]的单位相同,都是px。所以在Sass中,这两个可以做加法运算。

举例2:运算单位不同

 div
{
    width:(100px + 20em);
} 

编译出来的CSS代码如下:

 Incompatible units: 'em' and 'px'. 

分析:

因为[100px]和[20em]单位不同,所以在Sass编译的时候会报错。其中,[Incompatible units: 'em' and 'px'.]意思是[em和px单位不一致]。

我们再来看一个实际开发中的例子,体会一下Sass加法的用法:

 $sidebar-width:220px;
$content-width:720px;
$gap-width:20px;
.container
{
    width: ($sidebar-width + $content-width + $gap-width)
    margin: 0 auto;
} 

编译出来的CSS代码如下:

 .container
{
    width:960px;
    margin:0 auto;
} 

 

二、Sass减法

在Sass中,做减法运算时,数值可以带单位,但是需要运算单位相同。如果不相同就会报错,编译不通过。这一点跟Sass加法是一样的。

举例1:运算单位相同

 div
{
    width:(100px - 20px);
} 

编译出来的CSS代码如下:

 div
{
    width:80px;
} 

分析:

由于[100px]和[20px]的单位相同,都是px。所以在Sass中,这两个可以做减法运算。

举例2:运算单位不同

 div
{
    width:(100px - 20em);
} 

编译出来的CSS代码如下:

 Incompatible units: 'em' and 'px'. 

分析:

因为[100px]和[20em]单位不同,所以在Sass编译的时候会报错。其中,[Incompatible units: 'em' and 'px'.]意思是[em和px单位不一致]。

我们也来看一个实际开发中的例子,体会一下Sass减法的用法:

 $container-width:960px;
$sidebar-width:200px;
.content
{
    width: ($container-width - $sidebar-width);
} 

编译出来的CSS代码如下:

 .content
{
    width:760px;
} 

分析:

在Sass中,如果是做减法运算是[变量]而不是[数值]的时候,我们要注意减号[-]前后一定要有空格。像上面这个例子,如果减号前后没有空格:

 $container-width:960px;
$sidebar-width:200px;
.content
{
    width: ($container-width-$sidebar-width);
} 

像上面这样,Sass是无法正确地识别哪个[-]是变量的一部分,哪个[-]是减号。不过对于Sass中的加法,则不需要考虑这一点。

 

三、Sass乘法

在Sass中,做乘法运算时,只能有一个数值带单位,另外一个数值只能是不带单位的数字。如果两个都是带单位的数字,则Sass会报错而编译不通过。其实,小伙伴们稍微想一下平常数学中的运算,就很容易明白。

举例1:一个带单位,另外一个不带单位

 div
{
    width:(100px * 2);
} 

编译出来的CSS代码如下:

 div
{
    width:200px;
} 

举例2:两个都带单位

 div
{
    width:(100px * 2px);
} 

编译出来的CSS代码如下:

 200px*px isn't a valid CSS value. 

分析:

[200px*px isn't a valid CSS value.]意思是:200px*px不是一个有效的CSS属性值。我们再来看一个实际开发中的例子,体会一下Sass乘法的用法:

 @for $i from 1 through 3
{
    .item-#{$i}
    {
        width:10px * $i;
    }
} 

编译出来的CSS代码如下:

 .item-1
{
    width: 10px;
}
.item-2
{
    width: 20px;
}
.item-3
{
    width: 30px;
} 

 

四、Sass除法

我们都知道,[/]在CSS中已经作为一种符号来使用了,例如我们常见的字体属性缩写[font:Arial 12px/1.5em]。因此在Sass中做除法运算的时候,如果我们直接使用[/]符号作为除号,将不会生效。

在Sass中,如果我们想要做除法运算,我们需要在外面添加一个[小括号()]。

举例:

 div
{
    width:(100px/2);
} 

编译出来的CSS代码如下:

 div
{
    width:50px;
} 

分析:

在这个例子中,如果我们将小括号去掉,则Sass编译的时候会报错。但是在Sass中,如果做除法运算中是[变量]而不是[数值]时,[/]会被自动识别为除法,不需要在外面添加小括号。

举例:

 $width:100px;
div
{
    width:$width/2;
} 

编译出来的CSS代码如下:

 div
{
    width:50px;
} 

在使用Sass的过程中,[/]这个符号被当做除法运算时有以下3种情况:

(1)数值被小括号()包含; (2)数值是另外一个数学表达式的一部分; (3)数值或它的任意部分存储在一个变量中或者函数的返回值;

举例:

 $height:100px;
div
{
    font:20px/10px;                 //纯CSS,不是除法运算
    width:(20px/10px);              //使用了小括号,是除法运算,符合第1点
    height:$height/2;               //使用了变量,是除法运算,符合第3点
    line-height:round(1.5)/2;       //使用了函数,是除法运算,符合第3点
    margin-left:10px + 10px/2px;    //使用了加号,是除法运算,符合第2点
} 

编译出来的CSS代码如下:

 div 
{
    font: 20px/10px;
    width: 2;
    height: 50px;
    line-height: 1;
    margin-left: 15px;
} 

分析:

在实际开发中,不管是加法、减法,还是乘法、除法运算,我们都建议在外面加上小括号。这种书写方式,能够使得代码一目了然,也方便维护。希望小伙伴们也规范一下自己的书写方式。

查看更多关于Sass四种数字运算详细介绍的详细内容...

  阅读:53次

上一篇

下一篇

第1节:Sass安装步骤    第2节:Sass 继承、占位符和混合宏    第3节:Sass变量简介    第4节:Sass插值实例讲解    第5节:Sass 教程 - Sass入门学习    第6节:Sass代码重用    第7节:Sass开发工具介绍    第8节:Sass的三种基本运算介绍    第9节:Sass继承实例讲解    第10节:Sass混合宏实例介绍    第11节:Sass流程控制@if语句    第12节:Sass流程控制@for循环    第13节:Sass流程控制@each循环    第14节:Sass基本运算介绍    第15节:Sass 数据类型详细介绍    第16节:Sass 嵌套方式讲解    第17节:Sass语法基础总结    第18节:Sass四种数字运算详细介绍    第19节:实现Sass注释的三种方式    第20节:Sass流程控制详细介绍    第21节:Sass占位符实例讲解    第22节:Sass颜色运算详细介绍    第23节:Sass字符运算介绍    第24节:Sass流程控制@while循环