个性化阅读
专注于IT技术分析

Sass的运算符介绍和用法

本文概述

Sass可以帮助你在样式表中进行基本的数学运算。应用适当的算术符号非常简单。

Sass提供了一些标准的数学运算符, 即+, -, *, /和%。

让我们以一个示例为例, 做一些简单的数学运算来计算预留和文章的宽度。

SCSS语法:

.container { width: 100%; }
article[role="main"] {
  float: left;
  width: 600px / 960px * 100%;
}
aside[role="complementary"] {
  float: right;
  width: 300px / 960px * 100%;
}

等效的Sass语法:

.container
  width: 100%
article[role="main"]
  float: left
  width: 600px / 960px * 100%
aside[role="complementary"]
  float: right
  width: 300px / 960px * 100%

这将基于960px创建一个非常简单的流体网格。 Sass操作将执行类似的操作, 例如获取像素值并将其转换为百分比, 而不会带来太多麻烦。

它将生成如下所示的CSS:

.container {
  width: 100%;
}
article[role="main"] {
  float: left;
  width: 62.5%;
}
aside[role="complementary"] {
  float: right;
  width: 31.25%;
}


1)赋值运算符

在Sass中, 冒号(:)运算符用于定义变量。

句法:

$main-color: lightpink;

2)算术运算符

这些是用于执行算术运算的一些标准数学运算符。 Sass支持以下算术运算符。

算术运算符列表:

operator description
+ 此运算符用于加法。
该运算符用于减法。
* 该运算符用于乘法。
/ 该运算符用于除法。
% 该运算符用于余数。

重要事实:

加法(+)运算符还可用于连接字符串, 但仅适用于具有兼容单位的数字。

例如:

h2 {
    font-size: 15px + 2em; // Show error due to incompatible units
    font-size: 15px + 2; // 17px
}

同一单位的两个数字相乘是无效的CSS:

h2 {
    font-size: 5px * 2px; // invalid CSS
}

除法运算符是CSS速记属性的组成部分。

例如:

font: 16px / 24px Arial sans-serif;
background: url("http://example.com") no-repeat fixed center / cover;

但是Sass更喜欢使用正斜杠(/)来执行除法运算。让我们举个例子, 看看Sass如何理解这个符号。

h2 {
    font-size: 16px / 24px // Outputs as CSS
    font-size: (16px / 24px) // Uses parentheses, does division
    font-size: #{$base-size} / #{$line-height}; // Uses interpolation, outputs as CSS
    font-size: $base-size / $line-height // Uses variables, does division
    opacity: random(4) / 5; // Uses a function, does division
    padding-right: 2px / 4px + 3px // Uses an arithmetic expression, does division
}

Sass根据BODMAS公式遵循运算符优先级。

  • 首先评估括号内的表达式。
  • 乘法(*)和除法(/)运算符比加法(+)和减法(-)运算符具有更高的优先级。

请参阅以下示例:

h2 {
     width: 3px * 5 + 5px; // 20px
     width: 3 * (5px + 5px); // 30px
     width: 3px + (6px / 2) * 3; // 12px
 }

3)平等算子

条件语句中使用等号运算符。这些运算符用于测试两个值是否相同, 并返回布尔值。

Sass支持以下相等运算符。

Operator Description
= = 它等于运算符。
!= 它不等于运算符。

所有类型都支持这些。

让我们举两个例子来很好地理解它。第一个示例中使用等号运算符(==)测试$ font参数的类型并输出适当的消息。

请参阅以下示例:

@mixin font-fl($font){
    &:after {
        @if(type-of($font) == string) {
            content: 'My font is: #{$font}.';
        } @else {
            content: 'Sorry, the argument #{$font} is a #{type-of($font)}.';
        }
    }
}
h2{
    @include font-fl(sans-serif);
}

生成的CSS将具有以下代码:

h2:after {
    content: 'My font is: sans-serif.';
}

第二个示例定义一个列表并检查其项目的长度。在这里, 余数(%)运算符用于评估其长度, 然后将color属性设置为h2元素。

请参阅以下示例:

$list: "red", "yellow", "lightblue";
@mixin fg-color($property) {
    @each $item in $list {
        $color-length: str-length($item);
        @if( $color-length % 2 != 0 ) {
            #{$property}: unquote($item);
        }
    }
}
h2 {
    @include fg-color(color);
}

生成的CSS将具有以下代码:

h2 {
    color: lightblue;
}

注意:Sass不像其他语言那样支持严格相等运算符(===)。


4)比较运算符

比较运算符类似于相等运算符, 但它们仅用于比较数字。

Sass支持的比较运算符列表:

Operator Description
> 它指定一个大于比较运算符。
>= 它指定一个大于或等于比较运算符。
< 它指定一个小于比较运算符。
<= 它指定小于或等于比较运算符。

请参阅以下示例:

$padding: 50px;
h2 {
    @if($padding <= 20px) {
        padding: $padding;
    } @else {
        padding: $padding / 2;
    }
}

编译后, 生成的CSS将具有以下代码。

h2 {
  padding: 25px;
}

5)逻辑运算符

逻辑运算符用于测试条件表达式中的多个条件。

Sass支持的逻辑运算符列表:

Operator Conditions Description
And x和y 如果x和y均为true, 则指定true。
Or x或y 如果x或y为true, 则指定true。
Not x 如果x不为真, 则为真。

让我们举个例子来很好地理解它:

本示例包含按钮状态作为键, 并包含相应的颜色作为值。然后, 我们指定一个条件以评估其长度。如果整个条件为真, 则将背景色应用于h2元素。

Sass语法:

$list-map: (success: lightgreen, alert: red, info: lightblue);
@mixin button-state($btn-state) {
    @if (length($list-map) > 2 or length($list-map) < 5) {
        background-color: map-get($list-map, $btn-state);
    }
}
.btn {
    @include button-state(success);
}
.btn {
    background-color: lightgreen;
}
赞(0) 打赏
未经允许不得转载:srcmini » Sass的运算符介绍和用法
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏