2013-09-28 39 views
1

我是SASS和Compass試圖創建一個可以將通過的像素值轉換爲em的函數的新手。我找到了一個教程,但是它適用於SCSS,並且不適用於SASS。在SASS中創建em轉換器函數不是SCSS

即使我檢查過SASS網站,但似乎他們擁有大多數SCSS文檔,而不是他們描述的所有SASS文檔。

這裏就是我寫

@function em($px, $base: 24px) 
    @return ($px/$base) * 1em 

而且採用垂直RYTHEM在我的項目,並試圖這,但不是再次給錯誤$base-font-size

@function em($px, $base: $base-font-size) 
    @return ($px/$base) * 1em 

所以,當我用它作爲

font-size: em(16px) 

它應該轉換爲1em輸出

回答

1

你看起來正確的功能。只要確定你已經定義了$base-font-size的值爲16px。

你有以上的mixin也應努力

$base-font-size: 16px; 
@function em($px, $base: $base-font-size) { 
@return ($px/$base) * 1em; 
} 

現在你可以調用font-size: em(16px);,它應該工作 您也可以調用這個函數有一個可選的基礎,有時你可能要計算基礎,是上不是16px。

請同時查閱http://css-tricks.com/snippets/css/less-mixin-for-rem-font-sizing/以確定字體大小。你可能會想跳過EM,因爲他們有一個嵌套問題http://css-tricks.com/why-ems/

對於上述混入,在那裏你可以撥打

border: emCalc (10 20 30 40);

如果你沒有重複PX的更詳細的版本一次又一次的價值,你可能在1至4個值,檢查混入在Zurb的基礎上_global.scss

https://github.com/zurb/foundation/blob/master/scss/foundation/components/_global.scss#L183