在欠我可以創建一個像素轉換成他們一個功能,只返回值計算只是一個價值減去
@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