131

我认为这是不可能的,但我想我会问以防万一。这个想法是我有一个网络资源文件夹路径的变量:

@root: "../img/";
@file: "test.css";
@url: @root@file;

.px {
    background-image: url(@url);
}

结果我得到了这个:

.px { background-image: url("../img/" "test.css"); }

但是,我希望这些字符串组合成一个字符串,如下所示:

.px { background-image: url("../img/test.css"); }

是否可以在 Less 中将字符串连接在一起?

4

6 回答 6

234

使用变量插值

@url: "@{root}@{file}";

完整代码:

@root: "../img/";
@file: "test.css";

@url: "@{root}@{file}";

.px{ background-image: url(@url); }
于 2012-04-21T05:18:39.527 回答
30

正如您在文档中看到的那样,您也可以将字符串插值与变量字符串和普通字符串一起使用:

@base-url: "http://assets.fnord.com";
background-image: url("@{base-url}/images/bg.png");
于 2013-10-18T15:32:30.717 回答
12

我一直在寻找相同的技巧来处理图像。我用一个mixin来回答这个问题:

.bg-img(@img-name,@color:"black"){
    @base-path:~"./images/@{color}/";
    background-image: url("@{base-path}@{img-name}");
}

然后你可以使用:

.px{
    .bg-img("dot.png");
}

或者

.px{
    .bg-img("dot.png","red");
}
于 2013-08-28T13:20:35.677 回答
9

对于那些类似字符串的单位值,如45deg使用transform: rotate(45deg)函数unit(value, suffix)。例子:

// Mixin
.rotate(@deg) {
  @rotation: unit(@deg, deg);
  -ms-transform: rotate(@rotation);
  transform: rotate(@rotation);
}

// Usage
.rotate(45);

// Output
-ms-transform: rotate(45deg);
transform: rotate(45deg);
于 2015-11-19T02:31:15.403 回答
7

不知道您使用的是less.js还是 lessphp(例如 WordPress 的WP-Less插件),但使用 lessphp 您可以使用以下命令“取消引用”字符串~http ://leafo.net/lessphp/docs/#string_unquoting

于 2012-04-21T05:19:27.420 回答
-7

使用 Drupal 7。我使用了一个普通的加号,它正在工作:

@images_path+'bg.png'
于 2013-02-14T12:47:56.637 回答