2013-06-01 73 views
0

我試圖利用LESS來生成每個盒子之間具有均勻間距的盒子的複雜佈局。我希望能夠輕鬆更改間距,而無需重新調整每個絕對放置的盒子。這裏有一個簡單的例子(其中(.one > height) + @spacing(.one > width) + @spacing是我試圖完成的僞代碼)。這可能嗎?有沒有辦法在LESS中引用命名空間中的屬性?

@spacing: 4px; 

.box { 

    position: absolute; 

    &.one { 
    top: 0; 
    left: 0; 
    width: 100px; 
    height: 100px; 
    } 

    &.two { 
    top: (.one > height) + @spacing; 
    left: (.one > width) + @spacing; 
    width: 100px; 
    height: 100px; 
    } 

} 

SOLUTION

我不得不使用變量,但它實現同樣的目標:

@spacing: 4px; 

.box { 

    position: absolute; 
    background: white; 

    @one-width: 100px; 
    @one-height: 100px; 

    @two-width: 100px; 
    @two-height: 100px; 

    &.one { 
    top: 0; 
    left: 0; 
    width: @one-width; 
    height: @one-height; 
    } 

    &.two { 
    top: 0; 
    left: @one-width + @spacing; 
    width: @two-width; 
    height: @two-height; 
    } 

} 

回答

1

我不這麼認爲。也許這是更好地爲「&。一是」的高度和寬度創建變量:

@oneHeight: 100px; 
@oneWidth: 100px; 
@spacing: 4px; 

.box { 

    position: absolute; 

    &.one { 
    top: 0; 
    left: 0; 
    width: @oneWidth; 
    height: @oneHeight; 
    } 

    &.two { 
    top: @oneHeight + @spacing; 
    left: @oneWidth + @spacing; 
    width: 100px; 
    height: 100px; 
    } 

} 

然後,您可以創建3個或4個不同的高度和寬度可變因素,並進行復雜的佈局

+0

完美。我已經決定這是正確的路,你的答案證實了這一點。謝謝! –

相關問題