31

次のような関数を作成したいと思います。

.sprite-size (@width,@height,@x,@y) {
  width:~'@{width}px';
  height:~'@{height}px';
  background: @sprites no-repeat  -~'@{x}px' -~'@{y}px';
}

正の値を入力してから、出力でそれらを否定したい@xと思います。@y上記のLESS関数は、指定された例に対して以下を出力します。

//LESS
.header-language-selection {
  .sprite-size(44,21,312,0);
}

//Outputs CSS
.header-language-selection {
  width: 44px;
  height: 21px;
  background: url('/Content/images/sprites.png') no-repeat - 312px - 0px;
}

ご覧のとおり、出力結果には-との間にスペースが含まれていpxます。これを削除して、私が望むことを達成できる方法はありますか?

その行の出力を次のようにします。background: url('/Content/images/sprites.png') no-repeat -312px -0px;

4

2 に答える 2

60

1必要な記号と単位を掛けるだけです。それで:

.sprite-size(@width, @height, @x, @y) {
  width: @width*1px;
  t: @height*1px;
  background: @sprites no-repeat  @x*-1px  @y*-1px;
}
于 2013-01-17T20:04:56.790 に答える
10

これを試すこともできます:

.sprite-size (@width,@height,@x,@y) {
  width: ~"@{width}px";
  height: ~"@{height}px";
  background: @sprites no-repeat  @x*(-1px)  @y*(-1px);
}
于 2014-09-26T07:21:05.050 に答える