2017-02-15 52 views
1

我有一個SASS變量:SASS計算器插值

$default-padding: 15px 

我想用這個來設置使用計算功能的CSS width屬性。

我有基於$ default-padding變量的值進行各種計算。例如,寬度將是100% - (2 * $ default-padding)。由於左側和右側有填充。

我想設置一個局部變量(使用波旁的帶單元法):

$default-padding-left-and-right: #{(strip-unit($default-padding) * 2)}px; 

我希望這個變量的結果,在這種使用情況下30PX,我想用它在以下規則:

.popup { 
    width: calc(100% - #{$default-padding-left-and-right}); 
} 

這不起作用,得到的CSS是:

.popup { 
    width: calc(100% - strip-unit(15px)px); 
} 

一呃想知道我做錯了什麼?

+0

將'$默認padding'永遠是一個'px'價值? –

回答

1

兩件事情:

  1. 好像帶單元的功能沒有找到(爲什麼打印功能 名out)
  2. 你不應該插入$ default-padding-left-and-right(它將變量值變成一個字符串) - 使用multiply來代替。

例子:

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

$default-padding: 15px; 
$default-padding-left-and-right: strip-unit($default-padding) * 2px; 

.popup { 
    width: calc(100% - #{$default-padding-left-and-right}); 
} 

輸出:

.popup { 
    width: calc(100% - 30px); 
} 
+0

謝謝,不知道爲什麼沒有找到strip-unit。只有當我對結果進行乘法時纔會發現它。 –

0

波旁功能strip-unitsstrip-unit - 改變這應該解決您的問題

+0

我正在使用Bourbon 4.3: 警告:[棄用] [棄用] strip-units已棄用,將在5.0.0中刪除。改用重命名的「strip-unit」功能。 –