我正在尝试从1循环到12并为应用中的特定视图输出一些更改网格的跨度宽度。
$span-width: 8.21875%;
$gap: 0.125%;
@for $i from 1 through 12 {
$span-width: ($i * $span-width) + ($i * $gap) ;
.span#{$i}{
width: $span-width;
}
}
这是输出
.span6 {
width: 6162%;
}
如何使用通常的算术规则编写sass来计算宽度?
答案 0 :(得分:4)
您想要的表达式是:($i * ($span-width / 1%)) + ($i * ($gap / 1%))
。或者,您可以从$span-width
/ $gap
变量中删除%。
编辑:不确定为什么将变量赋值给表达式不起作用(我只使用@debug测试过它)
$span-width: 8.21875%;
$gap: 0.125%;
@for $i from 1 through 12 {
@debug (($i * ($span-width / 1%)) + ($i * ($gap / 1%))) * 1%;
.span#{$i}{
width: (($i * ($span-width / 1%)) + ($i * ($gap / 1%))) * 1%;
}
}
生成这个:
.span1{width:8.34375%}
.span2{width:16.6875%}
.span3{width:25.03125%}
.span4{width:33.375%}
.span5{width:41.71875%}
.span6{width:50.0625%}
.span7{width:58.40625%}
.span8{width:66.75%}
.span9{width:75.09375%}
.span10{width:83.4375%}
.span11{width:91.78125%}
.span12{width:100.125%}
如果你真的需要重用变量,你可能需要考虑为它创建一个函数。
答案 1 :(得分:0)
所以我通过使用小数来解决它,并使用百分比函数切换到%(移动小数位)并设置单位。
$one-span-width: 0.0821875;
$gap: 0.00125;
@for $i from 1 through 12 {
$span-width: ($one-span-width * $i) + ($gap * $i) ;
.span#{$i}{
width: percentage($span-width);
}
}