Sass基本特性——运算

CSS中目前只有calc()能做运算,但是在Sass中,可以做各种数学运算。

加法

.box{
    width: 20px + 8in;
}

编译出来的CSS:

.box {
  width: 788px;
}

1in = 96px;

当em,rem等相对当前字体,于px在一起不能运算,会报错,如:

.box{
    width: 20px + 8em;
}

不过如果其中一个不同单位,那么会以另一个带单位的为准,如:

.box{
    width: 20px + 8;
}

.box2{
    width: 20em + 8;
}

编译出来的CSS为:

.box {
  width: 28px;
}

.box2 {
  width: 28em;
}

减法

$container: 960px;
$sidebar-width: 220px;
$gap-width: 20px;

.content{
    width: $container - $sidebar-width - $gap-width;
    float: left;
}

编译出来的CSS:

.content {

  width: 720px;

  float: left;
}

减法和加法一样,不支持em,rem等相对当前字体大小的单位与px进行计算。

乘法

乘法运算时,只需要其中一个带单位即可,如果都带有单位会报错,

如:

.box{
    width: 20px * 20px
}

编译时会报错。

而:

.box{
    width: 20px * 20;
}

编译出来的CSS:

.box{
    width: 400px;
}

与加减法一样,不同类型的单位运算时会报错。

除法

Sass的乘法运算规则也适用于除法运算,不过除法运算有特殊之处,因为”/”符号在CSS中已经作为一种符号使用,因此在Sass中直接使用”/”作为处好时,将不会生效,编译时既不会报错,也不会得到我们想要的效果。

如:

.box{
    width: 100px / 2;
}

编译出来的CSS:

.box {
  width: 100px / 2;
}

要修正这个文字,只需要给运算的外面添加一对小括号即可。

.box{
    width: (100px / 2);
}

编译出来的CSS为:

.box {
  width: 50px;
}

除了小括号以外,如果除了 “/” 外,还有其它的运算符号,那么也会被当作除号看待。

.box {
  width: 100px / 2 + 20px;
}

编译出来的CSS为:

.box {
    width: 70px;
}

另外,如果是用变量进行除法运算,”/”也会自动被识别为除法。

如:

$width: 960px;

.col {
   width: $width / 10;
}

编译出来的CSS为:

.col {

  width: 96px;
}

综合上述,”/ ”符号被当作除法运算符时有以下几种情况:

  • 如果数值或它的任意部分是存储在一个变量中或是函数的返回值。
  • 如果数值被圆括号包围。
  • 如果数值是另一个数学表达式的一部分。

在除法运算时,如果两个值带有相同的单位值时,除法运算之后会得到一个不带单位的数值。

关于单位计算的问题,同物理倒是非常像。

如果不想记”/”的规则,那么在想作为除法使用是,加上一个括号即可。

颜色运算

所有的运算都支持颜色值。

如:

p {
  color: #010203 + #040506;
}

编译出的CSS为:

p {
  color: #050709;
}

同样颜色值也支持乘法运算:

p {
  color: #010203 * 2;
}

编译出来的CSS:

p {
  color: #020406;
}

运算规则和二进制乘法相同,依次与每一位相乘。个人觉得颜色值的运算意义不是很大。

字符运算

在Sass中可以用”+”号对字符串进行拼接,如:

$content: "Hello" + "" + "Sass!";
.box{
    &:after{
        content: $content;
    }
    &:before{
        content: " #{$content} ";
    }
}

编译出来的CSS为:

.box:after {
  content: "HelloSass!";
}
.box:before {
  content: " HelloSass! ";
}

除了在变量中做字符连接运算之外,还可以直接通过 +,把字符连接在一起:

div{
    cursor: e + -resize;
}

span{
    cursor: "e" + "-resize";
}

编译出来的CSS为:

div {
  cursor: e-resize;
}

span {
  cursor: "e-resize";
}

==注意==:如果有引号的字符串被添加了一个没有引号的字符串 (也就是,带引号的字符串在 + 符号左侧), 结果会是一个有引号的字符串。 同样的,如果一个没有引号的字符串被添加了一个有引号的字符串 (没有引号的字符串在 + 符号左侧), 结果将是一个没有引号的字符串。 也就是说始终与加号左边的保持一致:

p:before {
  content: "Foo " + Bar;
  font-family: sans- + "serif";
}

编译出来的CSS为:

p:before {
  content: "Foo Bar";
  font-family: sans-serif;
}
时间: 2024-10-24 17:50:18

Sass基本特性——运算的相关文章

Sass 基本特性-运算 感觉满满都是坑

Sass中的基本运算 一.加法 在 CSS 中能做运算的,到目前为止仅有 calc() 函数可行.但在 Sass 中,运算只是其基本特性之一.      sass做加法运算是可以不考虑参数带单位,但需要单位同一      加号可以不需要空格隔开 示例: 1 $sidebar-width: 220px; 2 $content-width: 720px; 3 $gap-width: 20px; 4 5 .container { 6 width: $sidebar-width+$content-wid

1-8 Sass的基本特性-运算

[Sass运算]加法 程序中的运算是常见的一件事情,但在 CSS 中能做运算的,到目前为止仅有 calc() 函数可行.但在 Sass 中,运算只是其基本特性之一.在 Sass 中可以做各种数学计算,在接下来的章节中,主要和大家一起探讨有关于 Sass 中的数学运算. (一).加法 加法运算是 Sass 中运算中的一种,在变量或属性中都可以做加法运算.如: .box { width: 20px + 8in; } 编译出来的 CSS: .box { width: 788px; } 但对于携带不同类

Sass 基本特性 基础

(1)声明变量 $width: 300px; $ 变量声明符, width 变量名称, 300px 变量值. ------------------------------------------------------------------------------------------------------------------- (2)普通变量与默认变量 $fontSize: 12px; body { font-size:$fontSize; } 默认变量 sass的默认变量仅需要在值

sass学习--基本特性(基础篇)

1.变量: 由变量声明符.变量名称.变量值组成,例如:$width:300px; 1-1:声明普通变量与默认变量 //普通变量 $fontSize: 12px; body{ font-size:$fontSize; } //默认变量:默认变量的价值在进行组件化开发的时候会非常有用. $baseLineHeight:1.5 !default; body{ line-height: $baseLineHeight; } 注意: sass 的默认变量一般是用来设置默认值,然后根据需求来覆盖的,覆盖的方

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

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

Sass学习笔记之入门篇

Sass又名SCSS,是CSS预处理器之一,,它能用来清晰地.结构化地描述文件样式,有着比普通 CSS 更加强大的功能. Sass 能够提供更简洁.更优雅的语法,同时提供多种功能来创建可维护和管理的样式表.以下是我的学习笔记. Sass安装环境 1.安装sass(mac) ①:Ruby安装 ②:安装sass sudo gem install sass 可以通过 sass -v检测是否完成安装   2.更新sass gem update sass 3.卸载(删除)sass gem uninstal

CSS预编译器:Sass(入门),更快的前端开发

Sass 扩展了 CSS3,增加了规则.变量.混入.选择器.继承等等特性.Sass 生成良好格式化的 CSS 代码,易于组织和维护. SASS是对CSS3(层叠样式表)的语法的一种扩充,它可以使用巢状.混入.选择子继承等功能,可以更有效有弹性的写出Stylesheet.Sass最后还是会编译出合法的CSS让浏览可以使用,也就是说它本身的语法并不太容易让浏览器识别(虽然它和CSS的语法非常的像,几乎一样),因为它不是标准的CSS格式,在它的语法内部可以使用动态变量等,所以它更像一种极简单的动态语言

【less和sass的区别,你知道么?】

在介绍less和sass的区别之前,我们先来了解一下他们的定义: 一.Less.Sass/Scss是什么? 1.Less: 是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量.继承.运算.函数. Less 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可在服务端运行. 2.Sass: 是一种动态样式语言,Sass语法属于缩排语法, 比css比多出好些功能(如变量.嵌套.运算,混入(Mixin).继承.颜色处理,函数等),更容易阅读. Sass与Scss是什

sass、less和stylus的安装使用和入门实践

刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用css预处理器来合作,是一种很痛苦,即使不痛苦那也是需要花费非常多的时间来协调合作上的.对于预处 理器的态度,目前是本着学习新技术和推动css向前进的思想来学习新玩意.下面这篇文章来自w3cplus,这是一篇非常强大的文章,私以为互联网上介绍这方面知识的就属这篇文章是鼻祖了. 经过了这篇文章的学习,我