2014-02-24 74 views
0

我有下面的循环为标签云产生一些样式。在线生成器,它会产生我会考虑正确的css样式,但是在Visual Studio解决方案(2012)中,它自动生成css似乎挂断了。 (见下文)越少。有没有更合适的方式来产生这样的事情,通过少一些不会混淆VS无发电机?在循环中递增变量

 @iterations: 10; 
     @maxSize: 40; 
     @minSize: 10; 

     .tag-loop (@i) when (@i > -1) { 
      @j: (@i*(30/@iterations) + @minSize); 
      [email protected]{i} { 
       font-size:~"@{j}px"; 

      } 
      .tag-loop(@i - 1); 
     } 
     .tag-loop (@iterations); 

通过视觉工作室产地:

ul.tag-cloud li.tag-10 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-9 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-8 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-7 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-6 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-5 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-4 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-3 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-2 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-1 { 
    font-size: 10px; 
} 
ul.tag-cloud li.tag-0 { 
    font-size: 10px; 
} 

如果我使用类似http://winless.org/online-less-compiler更准确地产生以下:

li.tag-10 { 
    font-size: 40px; 
} 
li.tag-9 { 
    font-size: 37px; 
} 
li.tag-8 { 
    font-size: 34px; 
} 
li.tag-7 { 
    font-size: 31px; 
} 
li.tag-6 { 
    font-size: 28px; 
} 
li.tag-5 { 
    font-size: 25px; 
} 
li.tag-4 { 
    font-size: 22px; 
} 
li.tag-3 { 
    font-size: 19px; 
} 
li.tag-2 { 
    font-size: 16px; 
} 
li.tag-1 { 
    font-size: 13px; 
} 
li.tag-0 { 
    font-size: 10px; 
} 

回答

1

它看起来像你的VS使用(通过Web要点2012 ?)相当过时较少的1.3.3处理变量范围的方式截然不同,即在上一次迭代中定义的@j将覆盖先前的所有@j的定义。 解决方法是直接计算字体大小的值:

@iterations: 10; 
    @maxSize: 40; 
    @minSize: 10; 

    .tag-loop (@i) when (@i > -1) { 
     [email protected]{i} { 
      font-size: unit((@i * (30/@iterations) + @minSize), px); 
     } 
     .tag-loop((@i - 1)); 
    } 
    .tag-loop (@iterations); 
+0

谢谢,工作得很好。 – lucuma