Background image 如何在css中生成网格的.less mixin?
我想以.cX.rY选择器的形式为10 x 10的网格生成一个css选择器矩阵。但我不知道我怎么能做得少一点我是新手,少一点。我也在使用DotLess,所以可能有一些内在的限制;在这方面我不确定Background image 如何在css中生成网格的.less mixin?,background-image,less,background-position,Background Image,Less,Background Position,我想以.cX.rY选择器的形式为10 x 10的网格生成一个css选择器矩阵。但我不知道我怎么能做得少一点我是新手,少一点。我也在使用DotLess,所以可能有一些内在的限制;在这方面我不确定 @col-width: -24px; @row-width: -24px; .img-pos(@col, @row) { background-position: (((@col - 1) * @col-width) - 1) (((@row - 1) * @row
@col-width: -24px;
@row-width: -24px;
.img-pos(@col, @row) {
background-position:
(((@col - 1) * @col-width) - 1)
(((@row - 1) * @row-width) - 1);
}
.c2.r1 { .img-pos(2, 1); }
.c2.r2 { .img-pos(2, 2); }
.c2.r3 { .img-pos(2, 3); }
.c2.r4 { .img-pos(2, 4); }
.c2.r5 { .img-pos(2, 5); }
.c2.r6 { .img-pos(2, 6); }
.c2.r7 { .img-pos(2, 7); }
...
...
.cX.rY { .img-pos(2, 7); }
这可能吗?如果是,如何设置?以下是一些代码,允许您设置最大列数和行数,还可以选择设置起始列数和行号默认值:1,还可以选择将它们的类指示符默认值设置为c和r。它在LESS中使用循环技术来自动生成代码 更少的代码
@col-width: -24px;
@row-width: -24px;
.img-pos(@col, @row) {
background-position:
(((@col - 1) * @col-width) - 1)
(((@row - 1) * @row-width) - 1);
}
.generateGridSelectors(@maxCols, @maxRows, @colStart: 1, @rowStart: 1, @colSel: "c", @rowSel: "r") when (@maxCols > 0) and (@colStart < @maxCols) and (@maxRows > 0) and (@rowStart < @maxRows) {
@colStop: @maxCols + 1;
@rowStop: @maxRows + 1;
.makeGrid(@c: @colStart) when (@c < (@maxCols + 1)) {
.setRow(@r: @rowStart) when (@r < (@maxRows + 1)) {
//generate selector and position
(~".@{colSel}@{c}.@{rowSel}@{r}") {
.img-pos(@c, @r);
}
//interate next row
.setRow(@r + 1);
}
//end row loop
.setRow(@rowStop) {}
//start row loop
.setRow();
//iterate next column
.makeGrid(@c + 1);
}
//end column loop
.makeGrid(@colStop) {}
//start grid loops
.makeGrid();
} //end generateGridSelectors
//call your build (not sure how well it will handle real large numbers)
.generateGridSelectors(10, 10);
.c1.r1 {
background-position: -1px -1px;
}
.c1.r2 {
background-position: -1px -25px;
}
.c1.r3 {
background-position: -1px -49px;
}
...
...
.c10.r8 {
background-position: -217px -169px;
}
.c10.r9 {
background-position: -217px -193px;
}
.c10.r10 {
background-position: -217px -217px;
}