2014-02-21 17 views
0

所以我的代碼是有一個重大的問題,我似乎無法來解決這個問題。LESS變量:是有這種類型可能

每當我減去行81有問題。
我怎樣才能解決這個問題?

@max-columns: 2; 
@column-1-width-min: 30; 
@column-2-width-min: 40; 

.loop-column(@index) when (@index > 0) { 

    @max-minus-1a: "@{[email protected]{index}-width-min}"; 
    @max-minus-1b: @max-minus-1a - 1; // problem child 

    @min: ~"min-width: @{[email protected]{index}-width-min}"; 
    @max: ~"max-width: @{max-minus-1b}"; 

    @media (@min) and (@max) { 

    [data-deckgrid="card"]::before { 
     content: "@{index} [email protected]{index}"; 
    } 
    } 

    .loop-column(@index - 1); 
} 

.loop-column(@max-columns); 
+0

看的非常類似的問題,我今天回答:http://stackoverflow.com/q/21932983/2712740 –

回答

2

除了方法,你可以在this SO answer找到(如我上面我的評論已經提到),我覺得整個片段可以簡化爲像(以下1.5.x版或更高版本):

@column-widths: 30, 40, 55, 500; // etc. 

.loop-column(@index) when (@index > 0) { 
    .loop-column(@index - 1); 

    @min: extract(@column-widths, @index); 
    @max: (extract(@column-widths, @index + 1) - 1); 

    @media (min-width: @min) and (max-width: @max) { 
     [data-deckgrid="card"]::before { 
      content: "@{index} [email protected]{index}"; 
     } 
    } 
} 

.loop-column(length(@column-widths) - 1); 

與下面的CSS結果:

@media (min-width: 30) and (max-width: 39) { 
    [data-deckgrid="card"]::before { 
    content: "1 .column.card-column-1"; 
    } 
} 
@media (min-width: 40) and (max-width: 54) { 
    [data-deckgrid="card"]::before { 
    content: "2 .column.card-column-2"; 
    } 
} 
@media (min-width: 55) and (max-width: 499) { 
    [data-deckgrid="card"]::before { 
    content: "3 .column.card-column-3"; 
    } 
} 

即不需要通過「索引變量名」模擬陣列,因爲可以直接使用陣列(減陣列僅僅是一個逗號或空格分隔值列表中,例如@padding: 1 2 3 4;)。

相關問題