缩放所有指南针精灵

时间:2013-03-01 10:26:28

标签: sass compass-sass

是否有标准的方法来缩放指南针创建的所有精灵?也就是说,有一个图像是我需要的分辨率的两倍,我希望从该图像中获得所有精灵的大小。目前,我可以通过迭代加载的精灵并设置background-size并修改background-position来实现此目的。

为清楚起见,举例来说,如果我使用的是正常大小的精灵,我会这样做:

@import "settings/*.png";
@include all-settings-sprites;

但要获得双倍大小的精灵,我必须这样做:

@import "icons/*.png";
@include retina-sprites($icons-sprites); // retina sprites

@mixin retina-sprites($map) {
    $base-class: sprite-map-name($map);

    .#{$base-class}-all-retina-sprites {
      background-image: sprite-url($map);
      @include background-size(ceil(image-width(sprite-path($map)) / 2) auto);
    }

    @each $sprite in sprite-names($map) {
      .#{$base-class}-#{$sprite} {
        @extend .#{$base-class}-all-retina-sprites;

        $position: sprite-position($map, $sprite);
        background-position: nth($position, 1) nth($position, 2) / 2;
      }
    }
}

我希望有一种更简单或标准的方法来做到这一点。当我尝试在其他地方的CSS文件中包含单个精灵时,问题变得更糟,因为我无法使用任何标准定义。

0 个答案:

没有答案