我创建了一个 Javascript 表达式来根据我希望网格系统具有的一些所需的折叠特性来评估列的宽度,但我的 LESS代码给了我一个“语法错误”。这是我的代码:
.setColumnWidths(@maxcolumns, @num_cols, @min_resolution){
@media screen and(min-width: @min_resolution) {
.row {
.onecol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*1/{@maxcolumns})))`;
}
.twocol {
~ ` Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*2/{@maxcolumns}))) `;
}
.threecol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*3/{@maxcolumns})))`;
}
.fourcol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*3/{@maxcolumns})))`;
}
.fivecol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*5/{@maxcolumns})))`;
}
.sixcol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*6/{@maxcolumns})))`;
}
.sevencol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*7/{@maxcolumns})))`;
}
.eightcol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*8/{@maxcolumns})))`;
}
.ninecol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*9/{@maxcolumns})))`;
}
.tencol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*10/{@maxcolumns})))`;
}
.elevencol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*11/{@maxcolumns})))`;
}
.twelvecol {
width: ~ `Math.min(100%, (100% / {@num_cols}*Math.ceiling({@num_cols}*12/{@maxcolumns})))`;
}
}
}
}
上面的代码将允许“折叠”,在调用 mixin 时:
.setColumnWidths(12, 4, 420px);
在这里,我们声明列数应为 4,最大列数为 12,并且这应该在屏幕宽度为 420px 时发生。
为什么会失败,否则我如何使用 javascript 评估这些值?
最佳答案
这是一个语法错误。在 JavaScript 表达式中引用变量的正确语法是 @{var_name}
。您发布的代码中有 {@var_name}
。
关于javascript - Javascript 中的 LESS 变量给出语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032290/