// 网格系统 
// 时间：2016-08-16
// 作者：郑重
// 变量说明：
// @grid-columns：网格列数
// @grid-gutter-width：默认网格列间距

// grid生产函数
.make-grid-columns() {
    //递归调用
    .col(@index) {
        @item: ~".col-@{index}";
        .col((@index + 1), @item);
    }
    .col(@index, @list) when (@index =< @grid-columns) {
        @item: ~".col-@{index}";
        .col((@index + 1), ~"@{list}, @{item}");
    }
    .col(@index, @list) when (@index > @grid-columns) {
        @{list} {
            position: relative;
            min-height: 1px;
            padding-left: ceil(@grid-gutter-width / 2);
            padding-right: floor(@grid-gutter-width / 2);
            float: left;
        }
    }
    .col(1);
}
//计算宽度
.calc-grid-column(@index, @type) when (@type = width) and (@index > 0) {
    .col-@{index} {
        width: percentage(@index / @grid-columns);
    }
}
//计算push值
.calc-grid-column(@index, @type) when (@type = push) and (@index > 0) {
    .col-push-@{index} {
        left: percentage(@index / @grid-columns);
    }
}
.calc-grid-column(@index, @type) when (@type = push) and (@index = 0) {
    .col-push-0 {
        left: auto;
    }
}
//计算pull值
.calc-grid-column(@index, @type) when (@type = pull) and (@index > 0) {
    .col-pull-@{index} {
        right: percentage(@index / @grid-columns);
    }
}
.calc-grid-column(@index, @type) when (@type = pull) and (@index = 0) {
    .col-pull-0 {
        right: auto;
    }
}
//计算offset值
.calc-grid-column(@index, @type) when (@type = offset) {
    .col-offset-@{index} {
        margin-left: percentage(@index / @grid-columns);
    }
}
//递归生成
.loop-grid-columns(@index, @type) when (@index >= 0) {
    .calc-grid-column(@index, @type);
    .loop-grid-columns(@index - 1, @type);
}
//构建 width、pull、push、offset
.make-grid() {
    .loop-grid-columns(@grid-columns, width);
    .loop-grid-columns(@grid-columns, pull);
    .loop-grid-columns(@grid-columns, push);
    .loop-grid-columns(@grid-columns, offset);
}