2014-11-04 38 views
1

我使用的是Less Loops,它們實際上只是遞歸參數化的mixin。在屬性選擇器中使用較少的參數

我想用通過在選擇定義參數(@counter)如下:

.loop(@counter) when (@counter > 0) { 
    // call next iteration 
    .loop((@counter - 1));  

    // code for each iteration 
    &[data-size="@counter"] { 
     width: (3px * @counter); 
     height: (3px * @counter); 
    } 
} 

div { 
    .loop(5); // launch the loop 
} 

如果您複製並粘貼到像less2css在線較少的編譯器,你會得到以下:

div[data-size="@counter"] { 
    width: 3px; 
    height: 3px; 
} 

而我要的是:

div[data-size="1"] { 
    width: 3px; 
    height: 3px; 
} 

這可能嗎?

+0

'「@counter」' - 不,它不會以這種方式工作。字符串中的變量(以及其他特定語句,如選擇器)使用'@ {var}'語法擴展(出於顯而易見的原因))。參見[變量插值](http://lesscss.org/features/#variables-feature-variable-interpolation) – 2014-11-04 06:59:32

回答

2

轉出你有花括號{}這樣逃避變量:

.loop(@counter) when (@counter > 0) { 
    // call next iteration 
    .loop((@counter - 1));  

    // code for each iteration 
    &[data-size="@{counter}"] { 
     width: (3px * @counter); 
     height: (3px * @counter); 
    } 
} 

div { 
    .loop(5); // launch the loop 
} 
相關問題