Sass入门:第四章

1.加法

加法运算是Sass中运算的一种,在变量或属性中都可以做加法运算。如:

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

编译出来的CSS:

.box {
  width: 788px;
}

但对于携带不同类型的单位时,在Sass中计算会报错。如下所示:

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

编译的时候,编译器会报错:"Incompatible units: ‘em‘ and ‘px‘."

2.减法

Sass的减法运算和加法运算类似,我们通过一个简单的示例来做阐述:

$full-width: 960px;
$sidebar-width: 200px;

.content {
  width: $full-width -  $sidebar-width;
}

编译出来的CSS如下:

.content {
  width: 760px;
}

同样的,运算时碰到不同类型的单位时,编译也会报错,如:

$full-width: 960px;

.content {
  width: $full-width -  1em;
}

编译的时候,编译器报"Incompatible units: ‘em‘ and ‘px’."错误。

3.乘法

  Sass中的乘法运算和加法减法运算略有不同,虽然它支持多种单位,但当一个单位同时声明两个值时会有问题。比如下面的示例:

.box {
  width:10px * 2px;
}

编译的时候报"20px*px isn‘t a valid CSS value."错误信息。

如果进行乘法运算时,两个值单位相同时,只需要为一个数值提供单位即可,上面的示例可以修改成:

.box {
  width: 10px * 2;
}

编译出来的CSS:

.box {
  width: 20px;
}

Sass的乘法运算和加法、减法运算一样,在运算中有不同类型的单位时,也将会报错。

.box {
  width: 20px * 2em;
}

编译时报: " 40em*px isn‘t a valid CSS value. " 的错误信息。

4.除法

  Sass的乘法运算规则也适用于除法运算。不过除法运算还有一个特殊之处。在Sass中做除法运算时,直接使用" / "符号作为除号时,将不会生效,编译时既得不到我们需要的效果也不会报错。来看一个简单的示例:

.box {
  width: 100px / 2;
}

编译出来的CSS如下:

.box {
  width: 100px / 2;
}

  这样的结果对于大家来说没有任何意义。要修正这个问题,只需要给运算的外面添加一个小括号 () 即可:

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

编译出来的CSS如下:

.box {
  width: 50px;
}

  除了上面情况带有小括号," / " 符号会当作除法运算符之外,如果" / "符号在已有的数学表达式中时,也会被认作除法符号。如下面示例:

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

编译出来的CSS:

.box {
  width: 242px;
}

  另外,在 Sass 除法运算中,当用变量进行除法运算时," / " 符号也会自动被识别成除法,如下例所示:

$width: 1000px;
$nums: 10;

.item {
  width: $width / 10;
}

.list {
  width: $width / $nums;
}

编译出来的CSS:

.item {
  width: 100px;
}

.list {
  width: 100px;
}

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

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

如下所示:

//SCSS
p {
  font: 10px/8px;             // 纯 CSS,不是除法运算
  $width: 1000px;
  width: $width/2;            // 使用了变量,是除法运算
  width: round(1.5)/2;        // 使用了函数,是除法运算
  height: (500px/2);          // 使用了圆括号,是除法运算
  margin-left: 5px + 8px/2px; // 使用了加(+)号,是除法运算
}

编译出来的CSS:

p {
  font: 10px/8px;
  width: 500px;
  height: 250px;
  margin-left: 9px;
 }

  Sass的除法还有一个情况,如果两个值带有相同的单位值时,除法运算之后会得到一个不带单位的数值,如下所示:

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

编译出来的CSS如下:

.box {
  width: 10;
}

5.变量计算

  在Sass中除了可以使用数值进行运算之外,还可以使用变量进行计算。这让Sass的数学运算功能变得更加实用。一起来看一个简单的例子:

$content-width: 720px;
$sidebar-width: 220px;
$gutter: 20px;

.container {
  width: $content-width + $sidebar-width + $gutter;
  margin: 0 auto;
}

编译出来的CSS:

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

6.数字运算

  在Sass运算中数字运算时较为常见的,数字运算包括前面介绍的:加法、减法、乘法和除法等运算,而且还可以通过括号来修改它们的运算先后顺序。和我们的数学运算是一样的,一起来看一个示例:

.box {
  width: ((220px + 720px) - 11 * 20 ) / 12 ;
}

编译出来的CSS:

.box {
  width: 60px;
}

7.颜色运算

  所有算数运算都支持颜色值,并且是分段运算的。也就是说,红、绿和蓝各颜色分段单独进行运算。如:

p {
  color: #010203 + #040506;
}

  计算公式为01 + 04 = 05、02 + 05 = 07 和 03 + 06 = 09,并且被合成,编译出来的CSS为:

p {
  color: #050709;
}

算数运算也能将数字和颜色值一起运算,同样也是分段运算的。如:

p {
  color: #010203 * 2;
}

计算公式为01 * 2 = 02 、02 * 2 = 04 和 03 * 2 = 06,并且被合成为:

p {
  color: #020406;
}

8.字符运算

在Sass中可以通过加法符号 "+" 来对字符串进行连接。例如:

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

编译出来的CSS:

.box:before {
  content: " Hello Sass! ";
}

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

div {
  cursor: e + -resize;
}

编译出来的CSS:

div {
  cursor: e-resize;
}

  注意,如果有引号的字符串被添加了一个没有引号的字符串 (也就是,带引号的字符串在 + 符号左侧), 结果会是一个有引号的字符串。 同样的,如果一个没有引号的字符串被添加了一个有引号的字符串 (没有引号的字符串在 + 符号左侧), 结果将是一个没有引号的字符串。 例如:

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

编译出来的CSS:

p:before {
  content: "Foo Bar";
  font-family: sans-serif; }
时间: 2024-08-03 22:13:52

Sass入门:第四章的相关文章

《ECMAScript 6 入门- 第四章 数值的扩展》 —— 摘抄

1. 二进制和八进制表示法 ES6提供了二进制和八进制数值的新的写法,分别用前缀0b和0o表示. 0b111110111 === 503 // true 0o767 === 503 // true 八进制用0o前缀表示的方法,将要取代已经在ES5中被逐步淘汰的加前缀0的写法. 2. Number.isFinite(), Number.isNaN() ES6在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法,用来检查Infinite和NaN这两个

Sass入门:第二章

1.Sass语法格式 假设有这样一段CSS代码: body{ font : 100% Helvetica , sans-serif; color : #333; } Sass最初的语法格式 $font-stack : Helvetica , sans-serif $primary-color : #333 body font : 100% $font-stack color : $primary-color 这种语法格式没有CSS中常见的大括号和分号,容易出错. 而SCSS的语法格式 $font

ES6标准入门 第四章:字符串的扩展

1.字符串的Unicode 表示法 JavaScript 允许采用 \uxxxx 表示一个字符,其中 xxxx 表示字符的码点. "\u0061" // "a" ES5中的缺陷: 以上表示法只限于 \u0000--\uFFFF 之间的字符.超出这个范围的=字符,必须用两个双字节表示. "\uD842\uDFB7" //"??" 如果直接在\u 后面直接加上超过\uFFFF 的数值: "\u20BB7" //

AI - 深度学习入门十四章- 摘要1

原文链接:https://yq.aliyun.com/topic/111 01 - 一入侯门"深"似海,深度学习深几许 什么是"学习"? "如果一个系统,能够通过执行某个过程,就此改进了它的性能,那么这个过程就是学习". 学习的核心目的,就是改善性能. 什么是机器学习? 定义1: 对于计算机系统而言,通过运用数据及某种特定的方法(比如统计的方法或推理的方法),来提升机器系统的性能,就是机器学习. 定义2: 对于某类任务(Task,简称T)和某项性

第四章--调试器及相关工具入门

在写这章之前,我看了一下看雪以往的教程.本来想参考一下,可忽然发现,写这样的一章,是一件非常愚蠢的事情,因为我觉的关于这些工具的使用教程.看雪教程中已经写的够详细的了,我并不认为你会看不懂.所以我不想做浪费时间的人,本章就此搁浅. 推荐看<Crack Tutorial 2001>,推荐看<看雪论坛精华一.二.三.四>,推荐看<加密与解密--软件保护技术及完全解决方案>,推荐看一切与之有关的教程. 本章补遗: 要想上路,你最少应该熟练掌握以下工具: SoftICE:目前公

ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区

原文:ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 入门案例分析 在第一章里,我们已经对ArcGIS系列软件的体系结构有了一个全面的了解,接下来在本章中,将通过一个案例来熟悉ArcGIS for Desktop的使用,从解决问题的过程中,逐渐适应ArcGIS桌面的界面和操作方式. 本章的练习数据是一个住宅小区的简单平面示意图,需要在已有的基础上把楼房的轮廓补充完整,并加以整饰,完成一幅地图. 1.1 打开地图文档并浏览

HTML与CSS入门——第十四章  使用边距、填充、对齐和浮动

知识点: 1.在元素周围添加边距的方法 2.在元素中添加填充的方法 3.对齐的方法 4.float属性的使用 这里提到了CSS禅意花园,这块有时间可以玩玩~ margin和padding:用于添加元素周围的间距 14.1 使用边距 margin是边距 参数可以有[1~4]4种类型 14.2 填充元素 padding用于填充border与内容之间的空间 参数与margin一致 14.3 保持对齐 align,对齐: 有text-align,vertical-align 使用值根据自己的需求再自行研

第四章 Hibernate入门

第四章 Hibernate入门4.1 框架技术    4.1.1 框架的概念        框架是一个提供了可重用的公共结构的半成品.    4.1.2 主流框架        4.1.2.1 Struts框架        4.1.2.2 Struts2框架        4.1.2.3 Hibernate框架            一个优秀的持久化框架,负责简化对象数据保存到数据库中,或从数据库中读取数据并封装到对象的工作.        4.1.2.4 Spring框架4.2 Hibern

一个新手的Python自学之旅 #MacBook #《“笨办法”学Python》#第四章:言归正传讲Python:Mac系统的终端Terminal命令行快速入门之较复杂的命令

第四章:言归正传讲Python:Mac系统的终端Terminal命令行快速入门之"较复杂的命令" 在写第三章的时候,发现自己已经忘记了好多命令.其实我并没有按照Zed A.Shaw的提示,将这些命令做成小卡片,然后每天去记忆.可能源于我的目的并非是为了掌握并精研Python,我写博客并不是单纯为了分享自己的学习经验.而是希望自己能够通过学习python和写博客的形式,让自己以后养成这样的学习和记录习惯,有助于以后技能的掌握和积累.Python起到抛砖引玉的作用. 闲话少说,下面开始介绍

Python编程从入门到实践(第三、四章的列表和元祖) &#142015;

原文: http://blog.gqylpy.com/gqy/414 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我