scss 来自bourbon.io的utils.scss

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scss 来自bourbon.io的utils.scss相关的知识,希望对你有一定的参考价值。

// Copy from https://github.com/thoughtbot/bourbon

@function _compact-shorthand($values) {
  $output: null;

  $a: nth($values, 1);
  $b: if(length($values) < 2, $a, nth($values, 2));
  $c: if(length($values) < 3, $a, nth($values, 3));
  $d: if(length($values) < 2, $a, nth($values, if(length($values) < 4, 2, 4)));

  @if $a == 0 { $a: 0; }
  @if $b == 0 { $b: 0; }
  @if $c == 0 { $c: 0; }
  @if $d == 0 { $d: 0; }

  @if $a == $b and $a == $c and $a == $d { $output: $a;          }
  @else if $a == $c and $b == $d         { $output: $a $b;       }
  @else if $b == $d                      { $output: $a $b $c;    }
  @else                                  { $output: $a $b $c $d; }

  @return $output;
}

@function _contains-falsy($list) {
  @each $item in $list {
    @if not $item {
      @return true;
    }
  }

  @return false;
}

@mixin _directional-property(
  $property,
  $suffix,
  $values
) {
  $top:    $property + "-top"    + if($suffix, "-#{$suffix}", "");
  $bottom: $property + "-bottom" + if($suffix, "-#{$suffix}", "");
  $left:   $property + "-left"   + if($suffix, "-#{$suffix}", "");
  $right:  $property + "-right"  + if($suffix, "-#{$suffix}", "");
  $all:    $property +             if($suffix, "-#{$suffix}", "");

  $values: _compact-shorthand($values);

  @if _contains-falsy($values) {
    @if nth($values, 1) { #{$top}: nth($values, 1); }

    @if length($values) == 1 {
      @if nth($values, 1) { #{$right}: nth($values, 1); }
    } @else {
      @if nth($values, 2) { #{$right}: nth($values, 2); }
    }

    @if length($values) == 2 {
      @if nth($values, 1) { #{$bottom}: nth($values, 1); }
      @if nth($values, 2) { #{$left}: nth($values, 2); }
    } @else if length($values) == 3 {
      @if nth($values, 3) { #{$bottom}: nth($values, 3); }
      @if nth($values, 2) { #{$left}: nth($values, 2); }
    } @else if length($values) == 4 {
      @if nth($values, 3) { #{$bottom}: nth($values, 3); }
      @if nth($values, 4) { #{$left}: nth($values, 4); }
    }
  } @else {
    #{$all}: $values;
  }
}

@mixin margin($values) {
  @include _directional-property(margin, null, $values);
}

@mixin padding($values) {
  @include _directional-property(padding, null, $values);
}

以上是关于scss 来自bourbon.io的utils.scss的主要内容,如果未能解决你的问题,请参考以下文章

为啥 chrome 样式检查器显示来自 .scss 的样式?

scss 来自TaroUI的Mixins

scss 来自TaroUI的常见主题变量

scss 来自网络的Handy Sass资源

scss 块网格(来自Zurb Foundation)

来自util.js的Angular 6 SCSS编译错误