2012-05-28 29 views
0

我想写一些SASS(.scss)为捐赠晴雨表(认为进度条)生成CSS。SASS错误时使用%属性值与循环变量

我需要的CSS看起来是这样的:

.p-0:after { 
    left: 0%; 
} 

.p-1:after { 
    left: 1%; 
} 

[... up to 100] 

的SASS我已经是这样的:

@for $i from 0 through 100 { 
    .p-#{$i}:after {left: #{$i}%;} 
} 

这给了我这个错误:

Syntax error: Invalid CSS after "...r {left: #{$i}%": expected expression (e.g. 1px, bold), was ";}" 

怪异的事情如果我将上面的SASS中的“%”替换为“px”,SASS就完全酷了,但它不是我所需要的。

也许这是非常明显的,但我对这个SASS的东西很新。

回答

0

它看起来很奇怪,但试图通过1%乘以值:

@for $i from 0 through 100 { 
    .p-#{$i}:after {left: #{$i*1%};} 
} 
+0

不如做数学插值之外。更容易阅读,操作出错的可能性更小。例如,如果'%'被ruby解释为[modulo](http://www.ruby-doc.org/core-1.9.3/Numeric.html#method-i-25)? '#{$ 1} * 1%' – maxbeatty

+0

@maxbeatty,谢谢您的评论。我也想过这种方式,但在这种情况下编译的CSS看起来像:'.p-3:after {left:3 * 1%; }' –

+0

感谢@MikhailD,#{$ i * 1%}的作品,但是px有效的原因是什么,但不是%? – Eratox