sass 控制指令

控制指令

  控制指令主要有:@if 、@for 、@while 、@each 四种,控制指令是一种高级功能, 主要与混合指令(mixin)配合使用 。尤其是在 Compass 库中 。

1 、@if

  @if 跟 if 条件语句一样,也可以跟多个 @else if ,用返回值来判断输出的代码,当返回值为 true 时候输出后面 { } 中的代码,当返回值是 false 时,表示该条件不成立,将逐条执行 @else if 声明,如果全部不成立,最后执行 @else 声明 。

  如下代码:

$name : cmy
p{
    @if $name == c {
        color : red ;
  } @else if $name == m {
   color : blue ;
  } @else if $name == y {
   color : green ;
  } @else if $name == cmy {
   color : gold ;
  }@else {
   color : yellow ;
  }
}     

编译为:

p {
    color : gold ;

2 、@for 

  在 Sass 的 @for 循环中有两种方式:

  @for $cmy from <start> through <end>

  @for $cmy from <start> to <end>

  • $cmy 表示变量
  • start  表示起始值
  • 关键字  through  表示包括  end  这个数
  • to  表示不包括  end

eg1:trough关键字 ,如下代码:

@for $i from 1 through 3 {
  .item-#{$i} {  2em * $i; }
}

编译为:

.item-1 {
   2em;
}
.item-2 {
   4em;
}
.item-3 {
   6em;
}

  

  eg2:to关键字 ,如下代码:

@for $i from 1 to 3 {
  .item-#{$i} {  2em * $i; }
}

编译为:

.item-1 {
   2em;
}
.item-2 {
   4em;
}

3 、@while 循环

  @while 指令重复输出格式直到表达式返回结果为 false 。这个和 @for 指令很相似,只要 @while 后面的结果为 true 就会执行。

$i:4;    //变量赋值用 : 而不是想js一样用 =
$i_100px;
@while $i>0{
    .item-#{$i}{ $i_width+$i}
    $i:$i-1;
}

编译为:

.item-1{
    104px;
}
.item-2{
  103px;
}
.item-3{
    102px;
}
.item-4{
  101px;
}

4 、@each 

  @each 指令就是便利一个值列表,然后将变量作用于值列表中每一个项目,输出结果 。

  格式:$var  in   <list>

     $var 变量名

     <list> 一连串的值,也就是值列表

  eg:

@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');
}
原文地址:https://www.cnblogs.com/cmy485562216/p/7364385.html