sass

在线转换器 http://sassmeister.com/

http://www.ruanyifeng.com/blog/2012/06/sass.html

一、什么是SASS

SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护。

本文总结了SASS的主要用法。我的目标是,有了这篇文章,日常的一般使用就不需要去看官方文档了。

二、安装和使用

2.1 安装

SASS是Ruby语言写的,但是两者的语法没有关系。不懂Ruby,照样使用。只是必须先安装Ruby,然后再安装SASS。

假定你已经安装好了Ruby,接着在命令行输入下面的命令:

  gem install sass

然后,就可以使用了。

2.2 使用

SASS文件就是普通的文本文件,里面可以直接使用CSS语法。文件后缀名是.scss,意思为Sassy CSS。

下面的命令,可以在屏幕上显示.scss文件转化的css代码。(假设文件名为test。)

  sass test.scss

如果要将显示结果保存成文件,后面再跟一个.css文件名。

  sass test.scss test.css

SASS提供四个编译风格的选项:

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

  * expanded:没有缩进的、扩展的css代码。

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

  * compressed:压缩后的css代码。

生产环境当中,一般使用最后一个选项。

  sass --style compressed test.sass test.css

你也可以让SASS监听某个文件或目录,一旦源文件有变动,就自动生成编译后的版本。

  // watch a file

  sass --watch input.scss:output.css

  // watch a directory

  sass --watch app/sass:public/stylesheets

SASS的官方网站,提供了一个在线转换器。你可以在那里,试运行下面的各种例子。

/*sass基本用法解析*/
/*1.sass允许使用变量,以$开头*/
$blue : #1875e7;
$num: 8px;
$side: left;

.div {
  color : $blue;
}
.rounded {
  border-#{$side}-radius: 5px;
}
.ml {
  margin-#{$side}:$num;
}

/*2.sass 允许代码中使用公式 */
.div2 {
  margin:(14px/7);
  top:50px + 100px;
  left:$num*2;
}

/*3.1 SASS允许选择器嵌套*/
.div3 {
  .div4 {
    color:$blue;
  }
}
/*3.2 SASS 属性也可以嵌套(注意:属性后面必须加冒号border:)*/
.div5 {
  border:{
    left:{
      color:#000;
    }
  }
}
/*4 SASS有两种注释风格*/
  //4.1 /**/ 标准的CSS注释 /* comment */ ,会保留到编译后的文件
  //4.2 // 单行注释 // comment,只保留在SASS源文件中,编译后被省略
  //4.3 /*! */ 在/*后面加一个感叹号,表示这是"重要注释"。即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息。

/*5 sass可以继承 */
.div6 {
  @extend .div5 ;
  @extend .div3;
  font-size:12px;
}

/*6 Mixin*/
//Mixin有点像C语言的宏(macro),是可以重用的代码块
//使用@mixin命令,定义一个代码块
@mixin fl($val:10px) {
  float:left;
  margin-top:5px;
  margin-right:$val;
}
//使用@include命令,调用这个mixin
.div7 {
  @include fl(20px);
  @extend .div2;
}
//mixin的强大之处,在于可以指定参数和缺省值
@mixin corner($v,$h,$radius:10px){
  border-#{$v}-#{$h}-radius:$radius;
  -moz-border-#{$v}-#{$h}-radius:$radius;
  -webkit-border-#{$v}-#{$h}-radius:$radius;
}
.div8 {
  @include corner(left,top);
}
.div9 {
  @include corner(left,top,5px);
}

/*7 颜色函数 */
//SASS提供了一些内置的颜色函数,以便生成系列颜色
.c1 {
  color:lighten(#cc3, 10%);
}
.c2 {
  color:darken(#cc3, 10%);
}
.c3 {
  color:grayscale(#cc3);
}
.c4 {
  color:complement(#cc3);
}

/*8 插入文件@import */

/*9 高级语法 */
//9.1 条件语句
//9.2 循环语句
//9.3 自定义函数

//@if可以用来判断:配套的还有@else命令:
.div10 {
  @if 1+1==2 { border:1px solid #000;}
  @if 5<3 { border:2px solid #000;}
}
.div11 {
  @if lightness(#cc3)>30%{
    background-color: #000;
  }@else {
    background-color: #ff0000;
  }
}
//SASS允许用户编写自己的函数
@function db($n){
  @return $n*2;
}
.div12 {
  db(15px);
}










原文地址:https://www.cnblogs.com/fang51/p/4290611.html