2013-09-05 52 views
17

我需要在我SCSS代码来定义的宽度像这样:Sass是连接而不是添加?

#example { 
    width: $currentWidth + 349 !important; 
} 

$currentWidth由循环定义。

然而,萨斯最终总是串联的两个数字,而不是做算术。

我也曾尝试:

width: #{$currentWidth + 349}px !important;

仍然导致串联。

我不知道我在做什么错?我知道这是令人难以置信的基本的,但我也似乎无法找到萨斯如何处理算术

+4

是'$ currentWidth'字符串或数?如果它是一个字符串,那么它将连接。萨斯只能做算术,如果两个实体是数量型的(即萨斯解释'“10” + 349'它'同样的方式“肉饼” + 349')。 – cimmanon

回答

26

假设$currentWidth是一个整数良好的信息。

SASS:

$currentWidth: 30; 

#example { 
    width: unquote(($currentWidth + 349) + 'px ' + !important); 
} 

CSS OUTPUT:

#example { 
    width: 379px !important; 
} 

你可以在这里进行测试:

http://sass-lang.com/try.html

+0

通过将单位连接到像这样的整数,你会得到一个字符串。这是错误的,你应该*永远不*做这个*永远*。 – cimmanon

+1

正是我说:'($ currentWidth + 349)+ '像素''是一个字符串。如果你试图将单位价值改变为统一价值,你应该从不**这样做。 – cimmanon

+0

好吧,我看你在说什么,但你没有真正解释为什么“从不”这样做。另外,你会推荐什么?这会'#示例{ 宽度:ABS($ currentWidth + 349)+ PX重要;! }'是更好的方法吗? –

相关问题