3

我需要将百分比值 (51%) 转换为数字 (0.51)

做这个的最好方式是什么?

我的少片段

// Gradients
#gradient {
    .vertical-gloss(@startColor: #555, @endColor: #333, @firstColorStop:50%, @secondColorStart:51%) {
        background-image: linear-gradient(bottom, @startColor @firstColorStop, @endColor @secondColorStart);
        background-image: -o-linear-gradient(bottom, @startColor @firstColorStop, @endColor @secondColorStart);
        background-image: -moz-linear-gradient(bottom, @startColor @firstColorStop, @endColor @secondColorStart);
        background-image: -webkit-linear-gradient(bottom, @startColor @firstColorStop, @endColor @secondColorStart);
        background-image: -ms-linear-gradient(bottom, @startColor @firstColorStop, @endColor @secondColorStart);
        background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.5, @startColor), color-stop(0.51, @startColor));
        background-repeat: repeat-x;
  }
}
4

1 回答 1

6
  1. 使用unit函数转换50%为 50。
  2. 将结果除以 100。不要忘记将计算包含在括号中(括号在 LESS 1.3 中是可选的,但在 LESS 1.4 中是必需的)。

为了便于阅读,我使用了一个辅助变量,如下所示:

.vertical-gloss(@startColor: #555, @endColor: #333, @firstColorStop:50%, @secondColorStart:51%) {
    @firstColorStopPerc: (unit(@firstColorStop) / 100);
    @secondColorStopPerc: (unit(@secondColorStart) / 100);
    /* ... skipped non-relevant pieces ... */
    background-image: -webkit-gradient(linear, left bottom, left top, color-stop(@firstColorStopPerc, @startColor), color-stop(@secondColorStopPerc, @startColor));
    background-repeat: repeat-x;
}
于 2013-05-31T11:01:58.843 回答