我有一个包含一些变量的LESS文件:
@font-size: 100%;
@label-align: left;
@field-width: 230px;
@icon-size: 16px;
@icon-padding: 8px;
在我的JS脚本中,我需要知道用户在LESS文件中设置的一些初始值的总和。计算出的CSS值可能会根据父容器大小而更改。这些值也会在首次加载时发生变化,取决于窗口大小。
一些元素也是动态创建的,所以它使得在JS中获取正确的初始值变得非常困难,因为我必须在代码的不同点和不同范围内声明变量。
我想到的一个想法是声明一个“高作用域”对象,具有一些虚拟变量,并在将元素附加到DOM时尽快将该值赋给变量,但结果变得混乱且冗余。
经过多个小时的研究,我想出了这个目前可以工作的想法,有点hacky,但有效。 LESS:
.less-vars {
width: @field-width + @error-width + @icon-size + (@icon-padding * 2);
}
JS:
var less_vars = $('<div class="less-vars" />').hide().appendTo('body').width();
$('.less-vars').remove();
还有其他方法可以实现这个吗?
try/catch-Block
中包装sRule = oRules[j].cssText
。虽然您的gist已经正确实现了这一点,但是在fiddle中却没有。 - Aides