less.js可以从HTML中读取类名和参数吗?

我刚刚开始使用LESS ,我喜欢它。 我现在正在研究grid.less ,它使用LESS语义创建网格。

这使我能够做这样的事情

 //css .mydiv { .column(9); } //html 
9 column wide

我没有研究过less.js ,但是在某种程度上可以做到以下几点:

 //html 
9 column wide

有没有办法实现这个目标?

LESS不能轻易地从HTML中读取参数,因为LESS是一个预处理器(它在HTML中呈现任何内容之前处理CSS)。 但是,您可以预构建基本上执行相同操作的类。 您只需要设置一个实际限制,以确定可能有多少列。 我的示例是适度的(最多5列),但可以使用变量参数轻松更改。 它在LESS中使用循环结构来构建所需的最大列类数:

 @numColClasses: 5; .buildColumnClasses(@colNum) when (@colNum =< @numColClasses) { .column@{colNum} { .column(@colNum); } .buildColumnClasses((@colNum + 1)); } //end loop .buildColumnClasses(@colNum) when (@colNum > @numColClasses) {} //start loop .buildColumnClasses(1); 

(伪)CSS输出

 .column1 { code-for-columns-at: 1 wide; } .column2 { code-for-columns-at: 2 wide; } .column3 { code-for-columns-at: 3 wide; } .column4 { code-for-columns-at: 4 wide; } .column5 { code-for-columns-at: 5 wide; } 

在HTML中使用很像你注意到的

 
5 column wide