1-2 @if
本节编程练习不计算学习进度,请电脑登录imooc.com操作

@if

@if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块。在 Sass 中除了 @if 之,还可以配合 @else if 和 @else 一起使用。

假设要控制一个元素隐藏或显示,我们就可以定义一个混合宏,通过 @if...@else... 来判断传进参数的值来控制 display 的值。如下所示:

//SCSS
@mixin blockOrHidden($boolean:true) {
  @if $boolean {
      @debug "$boolean is #{$boolean}";
      display: block;
    }
  @else {
      @debug "$boolean is #{$boolean}";
      display: none;
    }
}

.block {
  @include blockOrHidden;
}

.hidden{
  @include blockOrHidden(false);
}

编译出来的CSS:

.block {
  display: block;
}

.hidden {
  display: none;
}

 

任务

小伙伴们,现在让我们来练习一下@if的用法吧!

  1. // ----
  2. // Sass (v3.4.12)
  3. // Compass (v1.0.3)
  4. // ----
  5.  
  6. //SCSS
  7. @mixin blockOrHidden($boolean:true) {
  8. @if $boolean {
  9. @debug "$boolean is #{$boolean}";
  10. display: block;
  11. }
  12. @else {
  13. @debug "$boolean is #{$boolean}";
  14. display: none;
  15. }
  16. }
  17.  
  18. .block {
  19. @include blockOrHidden;
  20. }
  21.  
  22. .hidden{
  23. @include blockOrHidden(false);
  24. }
下一节