Less 减:身高及;像素的宽度百分比,并将其相加

Less 减:身高及;像素的宽度百分比,并将其相加,less,percentage,Less,Percentage,在以下情况下,我定义了: @height-5: (@winheight / 100) * 5; @height-10: (@winheight / 100) * 10; ...etc @winheight来自: @winheight:`$(window).height()`; (宽度相同) 现在我可以使用: width: ~"@{width-10}px"; height: ~"@{height-100}px"; 将窗口的百分比设置为像素 但现在我想计算一个高度和宽度,比如: left: @

在以下情况下,我定义了:

@height-5: (@winheight / 100) * 5;
@height-10: (@winheight / 100) * 10;
...etc
@winheight
来自:

@winheight:`$(window).height()`;
(宽度相同)

现在我可以使用:

width: ~"@{width-10}px";
height: ~"@{height-100}px";
将窗口的
百分比
设置为
像素

但现在我想计算一个高度和宽度,比如:

left: @width-80 + @height-10 + "px";
或:

第一个不起作用,因为它在
px

第二个没有编译,我尝试了一些变体,但没有成功

第二个问题是,我想从中生成一个函数,而不是定义每个百分比,我尝试了以下方法:

.winheight (@percentage){
   height: (@winheight / 100) * @percentage;
}
但当我在某个类中尝试这一点时:

.winheight(10)
我犯了一个错误 基本上,我希望以某种方式返回一个值,如:

@win_height_perc(@perc):  (@winheight / 100) * @perc;
无需为
高度:
宽度:
顶部:
左侧:


(我正在更新
$(窗口)。使用
less.watch()
调整大小以更新像素/百分比顺便说一句)

要解决第一个问题,您可以使用:

left: @width-80 + @height-10 + 0px;

调用
.winheight
mixin时会出现什么错误?它应该可以正常工作(至少对于在较少的样式表中定义的静态变量)。它可能会失败,这取决于其他因素,因为
@winheight
依赖于动态DOM值(不保证对DOM的访问)。在任何情况下,如果希望将其视为百分比,则应使用
%
单位调用它:

.winheight(100%)
在Less 1.7中,这将编译:

但将只打印生成无效CSS的字符串:

left: @{width-80 + @height-10}px

谢谢,我认为错误是关于值和px之间的空间,但是
*1px
可以工作,我猜同样
+0px
也可以工作,因为如果小于这个值,它就变成了
px
值。(在某些元素上使用%的问题是,该行为将被破坏,因此我宁愿动态生成像素值。尽管我认为%值不应改变元素的行为,并且由浏览器正确处理……)
.winheight(100%)
left: ~"@{width-80 + @height-10}px"
left: @{width-80 + @height-10}px