较少的CSS和RetinaJS错误

时间:2012-09-16 21:14:35

标签: css ios firefox less retina-display

我正在尝试使用LESS CSSRetinaJs将背景图像制作成视网膜图像:

正如RetinaJS用户指南中所建议的,我包含了一个retina.less文件,其中包含以下内容:

.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;
  }  
}


.topMenu {
    .at2x("../../resources/img/topMenuTitle.png");
}

当我在Firefox上测试时,我得到错误:

b.value in undefined
in retina.less
@xxxxxxxxxx/resources/js/less-1.3.min.js:8
t@xxxxxxxxxx/resources/js/less-1.3.min.js:8
[...etc...]

在Safari(iPhone 4)中,我有:

'undefined' is not an object
in retina.less on line null, column 0:
NaN    background-image: url(@path);

我在同一个文件夹中同时有topMenuTitle.png(320px x 40px)和topMenuTitle@2x.png(640px x 80px)。

知道可能是什么问题吗?

2 个答案:

答案 0 :(得分:0)

我找到了解决方案

background-image: url(@path);  --->  background-image: url("@{path}");

background-image: url(@at2x_path); --->  background-image: url("@{at2x_path}");

.at2x("../../resources/img/topMenuTitle.png"); ---> .at2x('../../resources/img/topMenuTitle.png');

我希望这有助于某人

答案 1 :(得分:0)

也许我做错了什么,但上面的说明对我不起作用。我确实发现更新到视网膜的最新分支。没有做到这一点。来自主网站的但不是,我指的是Github的版本。 https://github.com/imulus/retinajs/blob/master/src/retina.less