在欠我可以创建一个像素转换成他们一个功能,只返回值计算只是一个价值减去
@em($target, $context: 16px) {
@return ($target/$context) * 1rem;
}
这样我可以使用的功能就像
.body {
font-size: em(22px);
padding: 0 em(10px);
}
这将输出
.body {
font-size: 1.375em;
padding: 0 0.625em;
}
然而在少,我可以看到做同样的功能的唯一方法是将选择器传递到功能太
.em(@selector, @target, @context: 16px) {
@{selector}: unit((@target/@context), em);
}
而且也需要以下列方式使用
.body {
.em(font-size: 22px);
}
将输出
.body {
font-size: 1.375em;
}
这样是好的,如果我有一个选择和一个值,但如上面的Sass示例中所示,如果我需要填充0
和0.675em
,那么我不能使用Less函数来执行此操作。
有没有办法从函数返回一个值就像Sass一样,所以我不必将选择器传递给函数?
后使用总之,不,您不能在Less中定义“真实”功能。因此对于特定的用例,最紧凑的方法就像[这些](https://gist.github。com/seven-phases-max/b07ea3f9b9d0a307070f)(无论你发现哪个更具可读性)。 – 2014-09-20 20:52:51
这很棒@七相最大 - 这是一个很好的解决方法。如果您可以将其作为答案创建,我会将其标记为帮助他人的“答案”。 – 2014-09-20 21:02:45
这听起来像你需要被介绍到['rem'](http://css-tricks.com/theres-more-to-the-css-rem-unit-than-font-sizing/)你赢了再也不需要这个功能了。 :d – GolezTrol 2014-09-20 23:00:53