17

LESS で var と文字列を連結して、それらの間にスペースが入らないようにする方法を教えてください。

次のコードがあります。

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

h1 {
   .text(16)
}

LESS の出力は次のとおりです。

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

スペースを削除する方法を見つける必要があります。

ありがとうピート

4

6 に答える 6

47

遅刻者がこのスレッドを見つけた場合:

このための組み込み関数があります。

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

したがってfont-size: unit(@size, px);、結果は になりfont-size: 12pxます。私はそれをテストしました。

http://lesscss.org/#reference

于 2013-05-31T16:35:38.953 に答える
6

Uは次のようなものを使用できます:

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

しかし、lesscss.org では次のようになります。less 1.3.1 より前は、(~"@{name}") タイプのセレクターがサポートされていました。これに対するサポートは、近い将来削除される予定です。

別の解決方法は不可能だと思います。

于 2012-11-06T10:07:12.587 に答える
4

最もクリーンな方法 (文字列補間なし) は、変数に 0px を追加することだと思います@size + 0px

于 2012-10-04T12:10:28.010 に答える
3

CSS 関数 (例: calc) と組み合わせて使用​​する必要がある場合は、次の 1 つの方法があります。

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

出力:

width: calc(33% - 12px);
于 2015-09-24T19:07:19.870 に答える
-1

Less は値以外をスペースに置き換えるため、単位を変換するには、その単位の 0 を追加します。単位値を渡さないでください。

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

p {
 .my_mixin(12);
}

これが他の誰かに役立つことを願っています。

于 2013-04-08T14:25:05.927 に答える