萨斯的演绎

时间:2012-03-03 20:19:08

标签: ruby sass exponent

在发现Sass没有指数能力之后,我决定制作自己的pow()函数。这是我不成功的尝试:

@function pow($x,$p) {
  $u: unit($x);
  $x: $x / 1#{$u};
  $p: round($p);
  @if $p == 0 {
    @return 0;
  } @else if $p == 1 {
    @return $x;
  } @else {
    @for $i from 1 through abs($p) {
      $x: $x * $x;
    }
  }
  @if $p < 0 {
    $x: 1 / $x;
  }

  @return $x + $u;
}

我坚持的部分是剥离单位。我知道12px / 1px = 12,但在我的情况下,单位是未知的,12px / 1#{unit(12px)}不起作用,因为它等于"12px/1px"(是的,带引号)。 unquote函数似乎对我不起作用,我不知道为什么。

如果您想知道,我想剥离单位(并最终将其返回)的原因是因为12px * 12px = 144px*px

1 个答案:

答案 0 :(得分:1)