2014-02-24 113 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