如果我理解正确,您真的不想将 id 定位为仅更改其大小,这就是您的原始代码...
#foreign-language { font-size: (@default-fontsize + 2); }
...确实,通过将 css 生成为:
#foreign-language {
font-size: 14px;
}
我相信您真正想要的是更改它,@default-fontsize
以便它在您的 LESS 代码中传播到其他地方。现在,您不能通过使用 id 来做到这一点,因为当代码查看body
元素上的 id 时,LESS 已经编译为静态 CSS。您需要已经知道在编译阶段是否要向浏览器提供一组外语准备的 CSS。
现在,您可以使代码灵活,以便一旦您知道是否正在修改它,您就可以告诉它更改值。你可以用 mixin 做这样的事情:
.setFontSize(@addSize: 0) {
@default-fontsize: 12px + @addSize;
}
然后只调用以下两个中的一个,具体取决于您正在处理的语言集:
.setFontSize(); //do this normally
.setFontSize(2); //do this to increase it for those you need to
然后在需要的地方使用变量:
body {
font-size: @default-fontsize;
}
同样,这不是可以根据身体是否有foreign-language
id 使用 LESS “即时”完成的事情。相反,如果你知道你正在处理外语,你需要告诉 LESS 以不同的方式编译。您可以设置一个全局变量,例如:
@addFontSize: 0; //change to 2 when dealing with a foreign language
然后只需像这样对 mixin 进行一次调用:
.setFontSize(@addFontSize); //will change based off your global variable setting