3

我正在尝试从 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 来计算宽度?

4

2 回答 2

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%}

如果您确实需要重用该变量,您可能需要考虑为它创建一个函数。

于 2012-10-15T11:50:50.830 回答
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);     
 }
}
于 2012-10-15T22:48:22.897 回答