Concatenate string and var less css

不问归期 提交于 2020-01-09 09:47:51

问题


Can anyone please tell me how to concatenate a var and a string in LESS so I don't have the space between them?

I have the following code:

.text(@size) {
    font-size: @size + px;
    line-height: (@size / 10) + em;
}

h1 {
   .text(16)
}

What the LESS outputs is the following:

h1 {
    font-size: 12 px;
    line-height: 1.2 em;
}

I need to find a way to remove the spaces.

Thanks Pete


回答1:


In case any late-comers find this thread:

There is a built-in function for this:

unit(@dimension, [@unit: ""]);

So font-size: unit(@size, px); should result in font-size: 12px. I tested it.

http://lesscss.org/#reference




回答2:


U can use something like this:

.text(@size) {
    @lineheight: @size / 10;
    font-size: ~"@{size}px";
    line-height: ~"@{lineheight}em";
}

But on lesscss.org is this: prior to less 1.3.1 a (~"@{name}") type of selector was supported. Support for this will be removed in the near future.

I think another way of solution is not possible.




回答3:


I think the cleanest way (without string interpolation) is to add 0px to your variable, e.g. @size + 0px.




回答4:


this is how I recently solved a similar problem.

.text(@size: 10) {
  font-size: e(%("%dpx", @size));
  line-height: e(%("%dem", @size/10));
}

The %("string", value) function simply format a string and so it take the %d inside the string and transform it in whatever is value. an example here: http://cdpn.io/hAbwl

Hope this can help.




回答5:


In a case you need to use it in combination with CSS function (eg. calc), here is one way:

@width: 12;
width: %(~"calc(33%% - %dpx)", @width);

Outputs:

width: calc(33% - 12px);



回答6:


Less replaces anything but values with spaces, so to convert units you add 0 of that unit. Just dont pass in a unit value.

.my_mixin(@num) {
 @result: @num / 16; //12 / 16
 font-size: @result + 0em; //0.750em
}

p {
 .my_mixin(12);
}

Hope this helps someone else.



来源:https://stackoverflow.com/questions/12724227/concatenate-string-and-var-less-css

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!