如何将变量用于具有较少mixins的图像路径

时间:2012-05-02 21:51:11

标签: javascript html css3 less retina-display

我是Less的新手,我正在尝试使用http://retinajs.com/加载视网膜图像。

脚本在调用css中的图像时使用此mixin:

.at2x(@path, @w: auto, @h: auto) {
  background-image: url(@path);
  @at2x_path: ~`"@{path}".split('.').slice(0, "@{path}".split('.').length - 1).join(".") + "@2x" + "." + "@{path}".split('.')["@{path}".split('.').length - 1]`;
  @media all and (-webkit-min-device-pixel-ratio : 1.5) {
    background-image: url(@at2x_path);
    background-size: @w @h;
  }  
}

我的问题是,如果我在我的某个图像中使用变量,我如何正确使用该变量在mixin中工作。

做这样的事情不起作用:

  .at2x('@myImgPathVariable', 150px, 64px);

这也不是:

  .at2x('("@{myImgPathVariable}/logo.png")', 150px, 64px);

希望这是有道理的,谢谢。

2 个答案:

答案 0 :(得分:0)

/* did you try without quotes? */

  .at2x(@myImgPathVariable, 150px, 64px);

答案 1 :(得分:0)

卢克和奥姆都在做点什么。如何声明变量可能会产生很大的不同。这样做似乎对我有用:

@myImgPathVariable: ~'https://developers.google.com/images/developers-logo.png';

div {
    .at2x(@myImgPathVariable, 200px, 48px);
}

完整示例:http://jsfiddle.net/jstam/yUtxp/