So erstellen Sie ein Sprite aus einem Ordner mit und ohne Hintergrundgröße (mit Compass)

Ich möchte ein von Compass generiertes Icon-Sprite für zwei verschiedene Szenarien verwenden.

Verwenden Sie die Symbole in Originalgröße.Verwenden Sie dasselbe Symbol (dieselben Symbole) wie eine kleinere Version unter Verwendung der CSS3-Eigenschaftbackground-size.

Ich mache das zuerst:

$logo-spacing: 20px;
@import "logo/*.png";
@include all-logo-sprites;

Jetzt kann ich die generell erstellten CSS-Klassen gerne nutzen.logo-twitter usw.

Zwei erzielen das zweite Ergebnis, das ich verwenden könnte (darren131 / gist: 3410875 - Ändere die Größe von 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);
    }
}

Aber wenn ich ungefähr 30 Logos habe, müsste ich das für jede Sprite-Klasse manuell wiederholen.

Ist es möglich, den Ordner zweimal zu importieren, einmal für die Originalgröße und ein zweites Mal mit derbackround-size Eigentum? Oder ändern Sie die erwähnte Methode, um alle Klassen automatisch in einer anderen zu erstellen<div class="my-other-div-with-small-logos"> wo sollen die symbole kleiner erscheinen

Oder denke ich hier in die falsche Richtung?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage