为什么$ num /($ num * 0 + 1)剥离单位?

时间:2016-02-28 22:52:39

标签: css sass zurb-foundation

所以我在git上查看网站repo的基础,以便了解一些高级sass功能并跳过strip-unit-function。 基本上它以某种方式从给定的输入中剥离单位(px,em,rem)并输出值。

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

但为什么这样呢? (5px * 0 + 1)返回1px而(5px * 1px)返回5px * px,那么5px /(5px * 0 + 1)如何计算?这是某种黑客还是我不理解逻辑?

链接到完整的回购 https://github.com/zurb/foundation-sites/blob/6.2-stable/scss/util/_unit.scss

修改 我的问题不是如何做到,而是为什么它的工作原理。它只是一个错误或某种黑客,这遵循任何逻辑原则吗? 为什么通过划分工作剥离单位?

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

0 个答案:

没有答案