Sass 运算符
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%;
}
Sass操作符列表
1)赋值运算符
在Sass中,冒号(: )运算符用于定义变量。
语法:
2)算术运算符
这些是用于执行算术运算的一些标准数学运算符。 Sass支持以下算术运算符。
算术运算符列表:
operator |
说明 |
+ |
此运算符用于加法。 |
- |
此运算符用于减法。 |
* |
此运算符用于乘法。 |
/ |
此运算符用于除法。 |
% |
该运算符用于余数。 |
重要事实:
加法(+)运算符还可用于连接字符串,但仅适用于具有兼容单位的数字。
例如:
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支持以下相等运算符。
操作符 |
说明 |
== |
它等于运算符。 |
!= |
它不等于运算符。 |
所有类型都支持这些。
让我们举两个例子来很好地理解它。在第一个示例中使用相等运算符(==)测试$ 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将具有以下代码:
注意: : Sass不像其他语言一样支持严格相等运算符(===)。
4)比较运算符
比较运算符与相等运算符相似,但它们仅用于比较数字。
比较运算符列表在Sass中受支持:
操作符 |
说明 |
> |
它指定一个大于比较运算符。 |
>= |
它指定一个大于或等于比较运算符。 |
< |
它指定小于比较运算符。 |
<= |
它指定小于或等于比较运算符。 |
请参见以下示例:
$padding: 50px;
h2 {
@if($padding <= 20px) {
padding: $padding;
} @else {
padding: $padding / 2;
}
}
编译后,生成的CSS将具有以下代码。
5)逻辑运算符
逻辑运算符用于测试条件表达式中的多个条件。
Sass支持的逻辑运算符列表:
操作符 |
条件 |
说明 |
and |
x和y |
如果x和y均为true,则指定true。 |
or |
x或y |
如果x或y为true,则指定true。 |
not |
x |
如果x不为真,则为真。 |
让我们举个例子来很好地理解它:
这个例子包含按钮状态作为键,相应的颜色作为值。然后,我们指定一个条件以评估其长度。如果整个条件为true,它将背景颜色应用于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;
}