【发布时间】:2017-08-15 23:14:45
【问题描述】:
如果您听说过 CSS 网格,也许您偶然发现了同样的问题:
我正在尝试使用 postcss 构建一个 for 循环来构建类似的东西,以便在我的页面中轻松使用类(为了简单起见,我在这里省略了 -ms- 支持,我必须在这里构建类似的东西,但是计算)
.ac-grid--even-1 {
grid-template-columns: 1fr;
}
.ac-grid--even-2 {
grid-template-columns: 1fr 1fr;
}
.ac-grid--even-3 {
grid-template-columns: 1fr 1fr 1fr;
}
我唯一的问题是......我怎么能重复水平的东西,比如 1 法 1 法 1 法 ?正在寻找包裹和东西,但找不到有用的东西:
.ac-grid--even {
@for $grid_number from 1 to 12 {
&-$grid_number {
grid-template-columns: $grid_number * '1fr ';
}
}
}
谢谢
编辑:
感谢特里
对于 postcss,它只是有点不同,如果有人需要它:
$incrementalFr: 1fr;
@for $grid_number from 1 to 12 {
.ac-grid--even-$grid_number {
grid-template-columns: $incrementalFr;
}
$incrementalFr: $incrementalFr 1fr;
}
edit2:这种方式不适用于计算:/
示例:
$incrementalFr: 1fr;
$test: ;
@for $grid_number from 1 to 12 {
$col: $grid_number;
$spacer: ($col - 1);
$test: $test calc((100% / $col) - (($grid-gap * $spacer) / $col)) $grid-gap;
&-$grid_number {
-ms-grid-columns: $test;
grid-template-columns: $incrementalFr;
}
$incrementalFr: $incrementalFr 1fr;
}
这是有道理的,因为它一次只添加一个部分,导致字符串的“正确”长度但数量增加而不是重复块^^
该死的IE!!!
还有其他建议吗?解决方法?包?
【问题讨论】: