加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

什么是 Sass 运算

发布时间:2023-05-26 13:25:55 所属栏目:教程 来源:
导读:运算是一种通过已知量可能的组合,获得新的量的行为。Sass 中也为我们提供了各种各样的运算,以便我们更好的处理样式代码。本节我们将学习 Sass 中的数字运算、关系运算、除法运算、颜色运算、字符串运算等等&hellip
运算是一种通过已知量可能的组合,获得新的量的行为。Sass 中也为我们提供了各种各样的运算,以便我们更好的处理样式代码。本节我们将学习 Sass 中的数字运算、关系运算、除法运算、颜色运算、字符串运算等等…

什么是 Sass 运算?

运算从我们小时候就开始学习了,那在 Sass 中的运算是什么呢?
在我们写样式的时候,很多场景我们是需要用到计算的,而一般我们都是通过 javascript 来计算,CSS3 中也提供了用于运算的函数 calc() ,可能在工作中你使用过这个函数用来计算长度值,能用到的地方也非常有限。而在 Sass 中,扩展出了很多计算方法,使得你不止是可以计算长度值,还能做一些关系运算甚至颜色值的运算等等。这使我们可以把运算应用于更多的场景,来解决更复杂的问题,运算也是 Sass 的基本特性之一,下面我们一起来学习它~

语法示例

下面我们举几个简单的示例来感受下 Sass 的运算:

p {
  width: px + px;
  height:(px/);
  &:before{
    content: 'a' + 'b';
  }
  is:  == ; // 仅作为示例,css和sass中无此属性
}
上面我们用了加法运算、除法运算、字符串运算和布尔值运算,转换为 CSS 的代码如下:

p {
  width: px;
  height: px;
  is: true;
}
p:before {
  content: "ab";
}
此时你可能不是很理解,没关系,下面我们开始逐一讲解~~

使用场景

这部分我们将详细讲解 Sass 运算中的:

数字运算

圆括号

除法运算

关系运算

颜色运算

字符串运算

布尔运算

数字运算

在 Sass 中我们可以对数字类型的值进行加减乘除、取整的运算。在使用运算的过程中,一定要注意不能使用不兼容的单位!(在除法运算中除外),什么意思呢?就是说两个数字相加,你不能一个数字单位是 px 另一个数字单位是 em 。还有一点需要注意的是,如果你使用乘法运算,你只需要为其中的一个数值写上单位就好。数值的运算包括加 (+)、减 (-)、乘 (*)、除 (/)、取模 (%),乘法只需要有一个数值带单位即可,还有就是除法稍有特殊,后面会单独讲解,下面我来写一段代码看一下 Sass 的数字运算:

p {
  width: px + px; // 加法运算 (不能使用不兼容的单位)
  height: px +; // 加法运算无单位的数字可以与有单位的一起使用
  max-width: px - px; // 减法
  max-height: px * ; // 乘法,一个数值带单位即可
  font-size: px  ; // 模运算
}
上面这段代码转换成 CSS 为:

p {
  width: px;
  height: px;
  max-width: px;
  max-height: px;
  font-size: px;
}
上面我们对 Sass 数值运算的加减乘和模运算做了演示,在 Sass 的数字运算中还有一个需要特别注意的:减法运算符两边需要加空格或者都不加空格,也就是说运算符的两边是对称的;为什么要这样呢?因为减法运算符 - 不仅仅表示减法,对于负数或者一元否定则只需要在其前面加空格就好,也就是说这个标识符还可以表示负数和一元否定;我们举个例子来看下:

p {
  width: px - px; // 前后都有空格
  width: px-px; // 前后都没有空格
  width:px -px; // 只有前面有空格
}
上面这段 Sass 代码将会被编译成如下的 CSS :

p {
  width: px;
  width: px;
  width: px -px;
}
我们可以看到上面的代码,如果你只在 - 标识符前面加了空格,其两边不对称是不会对数值进行运算的,所以这个在你写代码的过程中一定要注意!

圆括号

在讲除法运算之前,一定要先讲一下这个圆括号 () ,圆括号和数学运算中一样,可以来控制运算顺序,这个我们从小就学过,在 Sass 运算中你同样可以使用它来控制运算顺序。

另外就是如果你直使用除法运算符, Sass 会把这当成一个分隔符来处理,但如果你是写在圆括号内就可以被当作除法操作处理了,这也是圆括号在 Sass 中的另外一个作用!

除法运算

在 CSS 中,你要知道 / 这个标识符并不是代表除法的,一些 CSS 的属性值是支持使用 / 来分隔的,所以在 Sass 中直接使用 / 也是会当成分隔符来处理。但是呢,在以下情况下,Sass 将会把 / 视为除法运算:

运算符前后的值存储在变量中或由函数返回
运算符和前后的值被圆括号所包裹
值是另外一个表达式的一部分
下面我们来举例看一下:

$one: px / ;
$two: px;
p {
  width: px + px / ; // 值是另外一个运算表达式的一部分
  font-size: $one; // 前后的值存储在变量中或由函数返回
  border-width: $two / ; // 前后的值存储在变量中或由函数返回
  height: (px / ); // 被圆括号所包裹
  max-width: px / ; // 会被当作分隔符来处理,而不是除法运算
}
上面这段 Sass 代码我对使用 / 的情况进行了注释,那么它转换为 CSS 代码是:

p {
  width: px;
  font-size: px;
  border-width: px;
  height: px;
  max-width: px/;
}
上面我们看到了 Sass 除法运算的使用,还有一种情况是:假如我在两个变量之间使用 / 标识符,而且我又不想对这两个变量进行除法运算,我只是想对这两个变量的值进行分隔而已,那该怎么办呢?那我们需要使用插值 #{} 来将两个变量包裹住即可,关于插值以后的章节会有讲解,这里我们先看一下如何做:

$one: px;
$two: ;
p {
  width: $one / $two; // 没有使用插值,会对变量值进行除法运算
  height: #{$one} / #{$two}; // 使用插值,不会进行除法运算
}
上面这段使用插值的代码将会转换为如下的 CSS 代码:

p {
  width: px;
  height: px/;
}
好了,除法运算讲完了,通过上面的讲解,是不是感觉 Sass 中的除法运算和你脑海中的还是有差别的,还有一个值得注意的是,如果你使用除法运算前后的值都带有相同的单位,那么最后的结果是一个不带单位的数值。在以后你使用除法运算的时候一定要知道在 Sass 中 / 不仅仅代表除法运算,你要用正确的方式来使用它!
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章