来自 软件资讯 2019-09-19 08:22 的文章
当前位置: 威尼斯国际官方网站 > 软件资讯 > 正文

SASS用法指南,前端css框架SASS使用教程

SASS用法指南

2012/06/21 · CSS · CSS

来源:阮一峰

学过CSS的人都通晓,它不是一种编制程序语言。

您能够用它支付网页样式,然则没办法用它编制程序。也便是说,CSS基本上是设计员的工具,不是程序员的工具。在程序猿眼里,CSS是一件很麻烦的东西。它从不改变量,也一直不标准化语句,只是一行行单纯的叙述,写起来杰出费劲。

图片 1

很自然地,有人就从头为CSS出席编制程序成分,那被称之为”CSS预管理器“(css preprocessor)。它的主干思维是,用一种极度的编制程序语言,实行网页样式设计,然后再编写翻译成符合规律的CSS文件。

种种”CSS预处理器”之中,作者自个儿最欣赏SASS,以为它有那多个优点,策画今后都用它来写CSS。下边是本人整理的用法计算,供自身付出时参照他事他说加以考察,相信对别的人也是有用。

图片 2

一、什么是SASS

SASS是一种CSS的开采工具,提供了成都百货上千有益于的写法,大大节约了设计者的光阴,使得CSS的支付,变得轻巧和可体贴。

本文总计了SASS的重要用法。我的靶子是,有了那篇小说,常常的貌似选择就没有须要去看官方文书档案了。

二、安装和应用

2.1 安装

SASS是Ruby语言写的,不过相互的语法未有涉嫌。不懂Ruby,照样使用。只是必需先安装Ruby,然后再安装SASS。

万一你早就安装好了Ruby,接着在命令行输入上面包车型客车吩咐:

JavaScript

  gem install sass

1
  gem install sass

下一场,就足以行使了。

2.2 使用

SASS文件就是一般的文书文件,里面能够平昔利用CSS语法。文件后缀名是.scss,意思为Sassy CSS。

下边包车型客车指令,能够在显示屏上展现.scss文件转载的css代码。(假设文件名字为test。)

JavaScript

  sass test.scss

1
  sass test.scss

万一要将显得结果保存成文件,后边再跟叁个.css文件名。

JavaScript

  sass test.scss test.css

1
  sass test.scss test.css

SASS提供多个编写翻译风格的选项:

* nested:嵌套缩进的css代码,它是默许值。

* expanded:未有缩进的、扩大的css代码。

* compact:简洁格式的css代码。

* compressed:压缩后的css代码。

生产意况其中,一般选取最终三个抉择。

JavaScript

sass --style compressed test.sass test.css

1
sass --style compressed test.sass test.css

SASS的官网,提供了三个在线转换器。你能够在那边,试运作上面包车型地铁各类例子。

三、基本用法

3.1 变量
SASS允许采用变量,全数变量以$最早。

JavaScript

$blue : #1875e7; div { color : $blue; }

1
2
3
4
$blue : #1875e7;
div {
color : $blue;
}

假设变量须求镶嵌在字符串之中,就不可能无需写在#{}之中。

JavaScript

$side : left; .rounded { border-#{$side}-radius: 5px; }

1
2
3
4
$side : left;
.rounded {
border-#{$side}-radius: 5px;
}

3.2 总结功效

SASS允许在代码中运用算式:

JavaScript

body { margin: (14px/2); top: 50px + 100px; right: $var * 10%; }

1
2
3
4
5
body {
margin: (14px/2);
top: 50px + 100px;
right: $var * 10%;
}

3.3 嵌套

SASS允许选取器嵌套。比方,上边包车型地铁CSS代码:

CSS

div h1 { color : red; }

1
2
3
div h1 {
color : red;
}

能够写成:

CSS

div { hi { color:red; } }

1
2
3
4
5
div {
hi {
color:red;
}
}

质量也足以嵌套:

CSS

p { border-color: red; }

1
2
3
p {
border-color: red;
}

能够写成:

CSS

p { border: { color: red; } }

1
2
3
4
5
p {
border: {
color: red;
}
}

专心,border前面总得抬高冒号。

3.4 注释

SASS共有三种注释风格。

标准的CSS注释 /* comment */ ,会保留到编写翻译后的文件。

单行注释 // comment,只保留在SASS源文件中,编写翻译后被轻巧。

四、代码的选定

4.1 继承

SASS允许一个选用器,承接另二个采纳器。比方,现成class1:

CSS

.class1 { border: 1px solid #ddd; }

1
2
3
.class1 {
border: 1px solid #ddd;
}

class2要传承class1,就要采纳@extend命令:

CSS

.class2 { @extend .class1; font-size:120%; }

1
2
3
4
.class2 {
@extend .class1;
font-size:120%;
}

4.2 Mixin

Mixin有一点像C语言的宏(macro),是能够援用的代码块。

运用@mixin命令,定义四个代码块。

CSS

@mixin left { float: left; margin-left: 10px; }

1
2
3
4
@mixin left {
float: left;
margin-left: 10px;
}

接纳@include命令,调用那个mixin。

CSS

div { @include left; }

1
2
3
div {
@include left;
}

mixin的强大之处,在于能够内定参数和缺省值。

CSS

@mixin left($value: 10px) { float: left; margin-right: $value; }

1
2
3
4
@mixin left($value: 10px) {
float: left;
margin-right: $value;
}

运用的时候,依据需求参加参数:

CSS

div { @include left(20px); }

1
2
3
div {
@include left(20px);
}

4.3 颜色函数
SASS提供了一部分停放的颜料函数,以便生成体系颜色。

CSS

lighten(#cc3, 10%) // #d6d65c darken(#cc3, 10%) // #a3a329 grayscale(#cc3) // #808080 complement(#cc3) // #33c

1
2
3
4
lighten(#cc3, 10%) // #d6d65c
darken(#cc3, 10%) // #a3a329
grayscale(#cc3) // #808080
complement(#cc3) // #33c

4.4 插入文件

@import命令,用来插入外界文件。

CSS

@import("path/filename.scss");

1
@import("path/filename.scss");

一旦插入的是.css文件,则一律css的import命令。

CSS

@import "foo.css";

1
@import "foo.css";

五、高端用法

5.1 条件语句

@if能够用来剖断:

JavaScript

p { @if 1 + 1 == 2 { border: 1px solid; } @if 5 < 3 { border: 2px dotted; }   } 配套的还恐怕有@else命令:   @if lightness($color) > 百分之二十五{ background-color: #000; } @else { background-color: #fff; }

1
2
3
4
5
6
7
p {
@if 1 + 1 == 2 { border: 1px solid; }
@if 5 &lt; 3 { border: 2px dotted; }   } 配套的还有@else命令:   @if lightness($color) &gt; 30% {
background-color: #000;
} @else {
background-color: #fff;
}

5.2 循环语句

SASS支持for循环:

JavaScript

@for $i from 1 to 10 { .border-#{$i} { border: #{$i}px solid blue; } }

1
2
3
4
5
@for $i from 1 to 10 {
.border-#{$i} {
border: #{$i}px solid blue;
}
}

也支持while循环:

JavaScript

$i: 6; @while $i > 0 { .item-#{$i} { width: 2em * $i; } $i: $i - 2; }

1
2
3
4
5
$i: 6;
@while $i &gt; 0 {
.item-#{$i} { width: 2em * $i; }
$i: $i - 2;
}

each命令,作用与for类似:

JavaScript

@each $member in a, b, c, d { .#{$member} { background-image: url("/image/#{$member}.jpg"); } }

1
2
3
4
5
@each $member in a, b, c, d {
.#{$member} {
background-image: url(&quot;/image/#{$member}.jpg&quot;);
}
}

5.3 自定义函数

SASS允许客户编写自身的函数。

JavaScript

@function double($n) { @return $n * 2; } #sidebar { width: double(5px); }

1
2
3
4
5
6
@function double($n) {
@return $n * 2;
}
#sidebar {
width: double(5px);
}

(完)

赞 2 收藏 评论

图片 3

四、代码的录取

 

4.1 继承

SASS允许贰个采纳器,承接另一个选取器。比方,现成class1:

  .class1 {
    border: 1px solid #ddd;
  }

class2要承袭class1,将要动用@extend命令:

  .class2 {
    @extend .class1;
    font-size:120%;
  }

4.2 Mixin

Mixin有一些像C语言的宏(macro),是足以选拔的代码块。

应用@mixin命令,定义三个代码块。

  @mixin left {
    float: left;
    margin-left: 10px;
  }

运用@include命令,调用那几个mixin。

  div {
    @include left;
  }

mixin的强大之处,在于可以内定参数和缺省值。

  @mixin left($value: 10px) {
    float: left;
    margin-right: $value;
  }

利用的时候,依据需求踏向参数:

  div {
    @include left(20px);
  }

上边是贰个mixin的实例,用来扭转浏览器前缀。

  @mixin rounded($vert, $horz, $radius: 10px) {
style="font-size: 16px;">    border-#{$vert}-#{$horz}-radius: $radius;
style="font-size: 16px;">    -moz-border-radius-#{$vert}#{$horz}: $radius;
style="font-size: 16px;">    -webkit-border-#{$vert}-#{$horz}-radius: $radius;
  }

使用的时候,能够像上面那样调用:

  #navbar li { @include rounded(top, left); }

  #footer { @include rounded(top, left, 5px); }

4.3 颜色函数

SASS提供了有的内置的水彩函数,以便生成体系颜色。

  lighten(#cc3, 10%) // #d6d65c
  darken(#cc3, 10%) // #a3a329
  grayscale(#cc3) // #808080
  complement(#cc3) // #33c

4.4 插入文件

@import命令,用来插入外界文件。

  @import "path/filename.scss";

倘若插入的是.css文件,则一律css的import命令。

  @import "foo.css";

三、基本用法

 

3.1 变量

SASS允许利用变量,全部变量以$起首。

  $blue : #1875e7; 

  div {
   color : $blue;
  }

一旦变量须要镶嵌在字符串之中,就亟须供给写在#{}之中。

  $side : left;

  .rounded {
    border-#{$side}-radius: 5px;
  }

3.2 总计成效

SASS允许在代码中应用算式:

  body {
    margin: (14px/2);
    top: 50px + 100px;
    right: $var * 10%;
  }

3.3 嵌套

SASS允许选用器嵌套。比方,下面包车型大巴CSS代码:

  div h1 {
    color : red;
  }

能够写成:

  div {
    hi {
      color:red;
    }
  }

质量也足以嵌套,譬喻border-color属性,能够写成:

  p {
    border: {
      color: red;
    }
  }

小心,border后面总得抬高冒号。

在嵌套的代码块内,能够选取&引用父元素。比方a:hover伪类,能够写成:

  a {
    &:hover { color: #ffb3ff; }
  }

3.4 注释

SASS共有二种注释风格。

标准的CSS注释 /* comment */ ,会保留到编写翻译后的文书。

单行注释 // comment,只保留在SASS源文件中,编写翻译后被轻巧。

在/*末尾加叁个感叹号,表示那是"主要注释"。即便是缩减情势编写翻译,也会保留那行注释,平时可以用于注解版权消息。

  /*! 
    主要注释!
  */

五、高档用法

 

5.1 条件语句

@if能够用来推断:

  p {
    @if 1 + 1 == 2 { border: 1px solid; }
    @if 5 < 3 { border: 2px dotted; }
  }

配套的还会有@else命令:

  @if lightness($color) > 30% {
    
  } @else {
    background-color: #fff;
  }

5.2 循环语句

SASS支持for循环:

  @for $i from 1 to 10 {
    .border-#{$i} {
      border: #{$i}px solid blue;
    }
  }

也支持while循环:

  $i: 6;

  @while $i > 0 {
    .item-#{$i} { width: 2em * $i; }
    $i: $i - 2;
  }

each命令,作用与for类似:

  @each $member in a, b, c, d {
    .#{$member} {
      background-image: url("/image/#{$member}.jpg");
    }
  }

5.3 自定义函数

SASS允许顾客编写本人的函数。

  @function double($n) {
    @return $n * 2;
  }

  #sidebar {
    width: double(5px);
  }

初稿地址:

本文由威尼斯国际官方网站发布于软件资讯,转载请注明出处:SASS用法指南,前端css框架SASS使用教程

关键词: