如何从任意数量的SASS剥离单元?(How do you strip the unit from a

2019-06-18 01:29发布

我知道你可以从上海社会科学院数量带形单位,当你知道前手像这样的单位:

$number: 16px;
$without-unit: 16px / 1px;
@warn $without-unit; // 16

但是,它可能剥去一些单位不知道单位是第一呢?

@function strip-unit($number) {
  // magic code here...
}

@warn strip-unit(16px); // 16

Answer 1:

-

更新:您不应该真正需要使用此功能。 萨斯数学有关单位非常聪明,我从来没有见过一个用例中,剥离单位是不是简单地用正确的数学来得到你需要的是更好的选择。 见萨斯问题线程 ,其中这已经详尽的讨论。

这是一个聪明的功能,但如果你觉得自己要使用它,有可能与你的数学问题。 不要依傍这一功能。 解决你的数学代替。

-

您需要通过同一个单元的1分。 如果使用unit()你会得到一个字符串,而不是一个数字,但如果你用零乘加1,你有你需要的东西:

@function strip-units($number) {
  @return $number / ($number * 0 + 1);
}

这样可行。 strip-units(13.48cm)将返回13.48



Answer 2:

我想你可以添加自定义的Ruby功能剥离单位(见文档添加自定义功能 )。 这将是这个样子,我觉得(警告,未经测试):

module Sass::Script::Functions
  def strip_units(num)
    assert_type num, :Number
    Sass::Script::Number.new(num.value)
  end
end


文章来源: How do you strip the unit from any number in SASS?