更少CSS(lessc) - 如何在保留CSS单位的同时将字符串转换为数字?

时间:2015-12-03 17:09:33

标签: twitter-bootstrap-3 less type-conversion concatenation

我有一个Bootstrap变量设置字体大小,以像素为单位 - @font-size-base: 14px; - 很可爱。但我想使用动态创建的变量名访问该14px值:

@size = ‘base’; // or 'large', 'small' etc. @someFontSizeVar = ~'@{font-size-@{size}}’;

麻烦的是,那种插值输出一个字符串,即’14px’,所以我再也无法运行数学函数了:

round(~'@{font-size-@{size}}’); // Fails

我需要将插值输出恢复为它只是@font-size-base: 14px;时的格式/类型 - 我不确定它是什么,它表现得像一个数字,但我不是确定它真的是一个,因为最后px。在Less Less中没有找到很多字符串到数字转换函数的方法。

基本上我需要numberWithUnits('14px'),但这是一厢情愿的想法:)我找到了这样做的颜色函数,它可以给你一个颜色对象(color(~'@{btn-@{someVar}-bg}'))但是还没有数字/ CSS字体大小单位。

(px可能是em,rem等等。)

谢谢,

加雷

1 个答案:

答案 0 :(得分:1)

使用普通variable references

而不是滥用嵌套字符串插值(那些从未打算用作间接变量引用工具)。
@font-size-base: 16px;
@size: base;


p {
   @s: "font-size-@{size}";
   font-size: round(@@s);
}