笔记:sass

4 篇文章 0 订阅
3 篇文章 0 订阅

1. 理解:

Sass 是一种 CSS 的预编译语言(用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件)。
它提供了 变量(variables)、嵌套(nested rules)、 混合(mixins)、 函数(functions)等功能。
sass有两种语法格式,一种是SCSS,一种是最早的sass,SCSS是sass的一个升级版本,是 Sass 3 引入新的语法,其语法完全兼容CSS3。

2. 变量:

SASS允许使用变量,所有变量以$开头。
 	$side : left;
如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中。
  .rounded {
    border-#{$side}-radius: 5px;
  }

3. 计算功能:

SASS允许在代码中使用算式:
  body {
    margin: (14px/2);
    top: 50px + 100px;
    right: $var * 10%;
  }

4. 嵌套:

SASS允许选择器嵌套。属性也可以嵌套。在嵌套的代码块内,可以使用&引用父元素。
比如a:hover伪类,可以写成:
  a {
    &:hover { color: #ffb3ff; }
  }

5. 继承:

SASS允许一个选择器,继承另一个选择器。class2要继承class1,就要使用@extend命令:
  .class1 {
    border: 1px solid #ddd;
  }
  .class2 {
    @extend .class1;
    font-size:120%;
  }

6. Mixin:

1. 使用@mixin命令,定义一个可以重用代码块。
  @mixin left {
    float: left;
    margin-left: 10px;
  }
2. 使用@include命令,调用这个mixin。
  div {
    @include left;
  }
  
3. 在它后面跟混入的名称和任选的arguments(参数),以及混入的内容块。
    @mixin sexy-border($color, $width) {
      border: {
        color: $color;
            width: $width;
        style: dashed;
      }
    }
    p { @include sexy-border(blue, 1in); }
    编译为:
    p {
      border-color: blue;
      border-width: 1in;
      border-style: dashed; }

4. mixin可以指定参数和缺省值。使用的时候,根据需要加入参数:
  @mixin left($value: 10px) {
    float: left;
    margin-right: $value;
  }
  div {
    @include left(20px);
  }
5. 样式内容块可以传递到混入(mixin)包含样式的位置。样式内容块将出现在混入内的任何 @content 指令的位置。这使得可以定义抽象 关联到选择器和指令的解析。
	  @mixin apply-to-ie6-only {
      * html {
        @content;
      }
    }
    @include apply-to-ie6-only {
      #logo {
        background-image: url(/logo.gif);
      }
    }
    编译为:
    * html #logo {
      background-image: url(/logo.gif);
    }

7. 插入文件:

@import命令,用来插入外部文件:
  @import "path/filename.scss";
如果插入的是.css文件,则等同于css的import命令:
  @import "foo.css";

8. 自定义函数:

SASS允许用户编写自己的函数
  @function double($n) {
    @return $n * 2;
  }

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

9. 循环语句:

1. for循环:
@for语句将设置$var为指定的范围内每个连续的数值,并且每一次输出的嵌套样式中使用$var的值。
对于from ... through的形式,范围包括<start>和<end>的值,但from ... to的形式从<start>开始运行,但不包括<end>的值。
     @for $i from 1 through 3 {
          .item-#{$i} { width: 2em * $i; }
    }
    编译为:
      .item-1 {
     	 width: 2em; }
    .item-2 {
     	width: 4em; }
    .item-3 {
      	width: 6em; }
      	
2. while循环:
  $i: 6;
  @while $i > 0 {
    .item-#{$i} { width: 2em * $i; }
    $i: $i - 2;
  }

3. @each指令:
通常格式是@each $var in <list or map>。
$var可以是任何变量名,像$length 或者 $name,和<list or map>是一个返回列表(list)或 map 的 SassScript 表达式。
@each指令也可以使用多个变量,格式为@each $var1,$var2, ... in <list>。如果<list>是列表(list)中的列表,子列表中的每个元素被分配给各自的变量。
   @each $animal in puma, sea-slug, egret, salamander {
       .#{$animal}-icon {
         background-image: url('/images/#{$animal}.png');
         }
     }
   	编译为:
   	.puma-icon {
      background-image: url('/images/puma.png'); }
    .sea-slug-icon {
      background-image: url('/images/sea-slug.png'); }
    .egret-icon {
      background-image: url('/images/egret.png'); }
    .salamander-icon {
      background-image: url('/images/salamander.png'); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值