SASS

Sass 是对于CSS的拓展,包含了两种不同的语法: 最新的SCSS和旧版的SASS。
全称是Syntactically Awesome StyleSheet。

Preprocessing

根据我的理解,SASS是把CSS中一些定义起来比较麻烦的属性抽象出来。开发人员可以使用更容易理解和读懂的代码来编写CSS样式。最后这些SACC样式都会被转译成标准的CSS样式。

Variables

在SASS当中可以定义变量,以便于重复使用。
SCSS:

$font-stack:    Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

转译成CSS就是:

body {
  font: 100% Helvetica, sans-serif;
  color: #333;
}

Nesting

在编写html的时候,元素都是可以嵌套的,但是标准的CSS样式是不可以嵌套的。但是在SCSS语法当中,你可以使用嵌套的样式定义。
SCSS:

SCSS SYNTAX
nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }
}

转译成CSS就是:

nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

Partials

其实这个功能应该属于模块化里的一部分,也就是说你可以把样式中重复使用的那部分提取出来,放在一个SCSS文件里。这个文件可以被其他的SCSS文件导入和使用。一般Partials文件都是以下划线开始的,例如_partial.scss。这样SASS就知道这是一个Partial文件,不会把它转译成CSS了。

Modules

你可以导入其他SCSS文件中定义的变量或者样式模块。
例如,在base.scss

// _base.scss
$font-stack:    Helvetica, sans-serif;
$primary-color: #333;

如果想在其他文件中使用,就可以使用 @import

@import '@styles/base.scss';

main {
  color: $primary-color;
}

最终会转译成CSS:

main {
  color: #333;
}

Mixins

有时候,样式中的一些部分会被重复定义,这时候如果能用生成函数来产生这些高度重用的样式模块的话,就很方便了。SASS就提供了这样的功能。你可以定义一个Mixins函数,来返回重用的样式,还可以接受参数。
SCSS:

@mixin transform($property) {
  -webkit-transform: $property;
  -ms-transform: $property;
  transform: $property;
}
.box { @include transform(rotate(30deg)); }

转译成CSS:

.box {
  -webkit-transform: rotate(30deg);
  -ms-transform: rotate(30deg);
  transform: rotate(30deg);
}

Extend/Inheritance

例如,你的工程中有许多提示文本,错误、提醒和成功信息。这些文本可能就是颜色不同,但是字体和字号都是一样的。它们都可以继承与同一个文本基类。于是在SCSS中,我们就可以这么写:

/* This CSS will print because %message-shared is extended. */
%message-shared {
  border: 1px solid #ccc;
  padding: 10px;
  color: #333;
}

// This CSS won't print because %equal-heights is never extended.
%equal-heights {
  display: flex;
  flex-wrap: wrap;
}

.message {
  @extend %message-shared;
}

.success {
  @extend %message-shared;
  border-color: green;
}

.error {
  @extend %message-shared;
  border-color: red;
}

.warning {
  @extend %message-shared;
  border-color: yellow;
}

转译成CSS就是:

/* This CSS will print because %message-shared is extended. */
.message, .success, .error, .warning {
  border: 1px solid #ccc;
  padding: 10px;
  color: #333;
}

.success {
  border-color: green;
}

.error {
  border-color: red;
}

.warning {
  border-color: yellow;
}

Operators

在SCSS中可以对数值进行计算,这是CSS无法做到的。
SCSS:

.container {
  width: 100%;
}

article[role="main"] {
  float: left;
  width: 600px / 960px * 100%;
}

aside[role="complementary"] {
  float: right;
  width: 300px / 960px * 100%;
}

转译成CSS就是:

.container {
  width: 100%;
}

article[role="main"] {
  float: left;
  width: 62.5%;
}

aside[role="complementary"] {
  float: right;
  width: 31.25%;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Sass&Gulp 一、sass介绍 (一) SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计...
    锋享前端阅读 1,650评论 0 3
  • 1、LESS的官网:http://lesscss.org 2、Sass官网地址:http://sass-lang....
    Howie223阅读 3,940评论 0 5
  • 1、SCSS 是 Sass 的新语法格式,从外形上来判断他和 CSS 长得几乎是一模一样,代码都包裹在一对大括号里...
    夜幕小草阅读 1,811评论 2 10
  • Sass 是对 CSS 的扩展,让 CSS 语言更强大、优雅。 它允许你使用变量、嵌套规则、mixins、导入等众...
    八宝君阅读 2,136评论 0 1
  • Sass的基本介绍: 1、sass是css的一个预编译处理器。增加了规则、变量、混入、选择器、继承等等特性。它是用...
    xcxerxes阅读 1,052评论 0 2

友情链接更多精彩内容