1

在发现 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.

4

1 回答 1

2

而是pow用 Sass 编写使用 Ruby http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html

于 2012-03-03T20:29:19.107 回答