我想为两种不同的场景使用 Compass 生成的图标精灵。
- 使用原始大小的图标。
- 使用与使用 CSS3 属性的较小版本相同的图标
background-size
。
我首先这样做:
$logo-spacing: 20px;
@import "logo/*.png";
@include all-logo-sprites;
现在我可以使用一般创建的 CSS 类等.logo-twitter
。
两个实现了第二个结果,我可以使用它(darren131 / gist:3410875 - resize sprites in Compass):
@mixin resize-sprite($map, $sprite, $percent) {
$spritePath: sprite-path($map);
$spriteWidth: image-width($spritePath);
$spriteHeight: image-height($spritePath);
$width: image-width(sprite-file($map, $sprite));
$height: image-height(sprite-file($map, $sprite));
@include background-size(ceil($spriteWidth * ($percent/100)) ceil($spriteHeight * ($percent/100)));
width: ceil($width*($percent/100));
height: ceil($height*($percent/100));
background-position: 0 floor(nth(sprite-position($map, $sprite), 2) * ($percent/100) );
}
.my-other-div-with-small-logos {
.logo-twitter {
$spriteName: twitter;
$percentage: 40;
@include resize-sprite($logo-sprites, $spriteName, $percentage);
}
}
但是,如果我有大约 30 个徽标,我需要为每个精灵类手动重复此操作。
是否可以两次导入文件夹,一次是原始大小,第二次是backround-size
属性?或者修改上述方法以在另一个<div class="my-other-div-with-small-logos">
图标应该看起来更小的地方自动创建所有类?
还是我在这里想错了方向?