使用较少的计算例程[重复]

Posted

技术标签:

【中文标题】使用较少的计算例程[重复]【英文标题】:The calc routine using less [duplicate] 【发布时间】:2013-04-24 04:11:05 【问题描述】:

有没有办法通过 less 来使用 css calc() 例程?

如果我转到http://less2css.org/ 并输入以下输入(这只是常规的 css 规则):

width: calc(100% - 450px);

但是输出应该是完全一样的(因为它是常规的 css),

less 编译器生成的 css 输出是 width: calc(-350%);

有什么办法可以让它工作吗?

【问题讨论】:

【参考方案1】:

Escape值:

width: ~"calc(100% - 450px)";

不过,在 LESS 1.4 中转义是不必要的,因为只有在计算被括号包围时才会进行计算。例如:

prop: 20 + 10px;    ->  prop: 20 + 10px;
prop: (2 + 10px);   ->  prop: 12px;
prop: func(1 + 2);  ->  prop: func(1 + 2);
prop: func((1 + 2));->  prop: func(3);

【讨论】:

+1 谢谢,还有,有什么方法可以在表达式中使用更少的变量,或者是推动它? @Danield 你的意思是~"calc(100% - @varname)" 是的,varname 是一个较小的变量 @Danield 是的,我给你的例子很有效。这不是一个问题,而是一个伪装成问题的答案;) @Danield 将计算放在转义字符串之外:@varname: @othervarname * 3;【参考方案2】:

如果您想在 LESS 表达式中进行计算(除了实际的 css 计算),您很快就会陷入难以理解的大混乱中,如下所示:

 @width: 85;
 left: ~'calc('((100vw - @width) / 2)~')';

这会导致:

 left: calc( 7.5vw );

如果不添加空格,我找不到这样做的方法。

所以更容易阅读的方法是只创建一个中间变量:

 @left: ((100vw - @width) / 2);
 left: ~'calc(@left)';

这会导致:

left: calc(7.5vw);

【讨论】:

为什么不这样呢?左:~'calc(((100vw - @width) / 2))';

以上是关于使用较少的计算例程[重复]的主要内容,如果未能解决你的问题,请参考以下文章

OpenMP:使用较少的长线程更好,还是使用最大可用的短线程更好?

使用 Webpack 连接并缩小所有较少的文件而不导入它们

JS中的使用较少的方法

Celery 子进程是不是应该出现在 ps aux 中?较少的

Sas程序优化使用较少的工作空间

较少的 CSS 解析错误:媒体定义需要块语句