Ich habe die letzten 4 Stunden damit verbracht, einen Weg zu finden, ein Sprite-Bild mit Compass und Sass zu erstellen, das auch jedes einzelne Bild automatisch skaliert, um es mit der Hintergrundgröße zu verwenden.Compass Sprite Bild und Skala
Nichts, was ich gefunden habe funktioniert, kann nicht glauben, dass es so schwierig ist.
Hat jemand ein funktionierendes Beispiel?
Edit: Das ist, was ich
@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));
}
@mixin resize-sprite-set($map, $percent, $only...) {
$name: sprite_map_name($map);
@each $sprite in sprite_names($map) {
@if length($only) == 0 or index($only, $sprite) != false {
.#{$name}-#{$sprite} {
@include resize-sprite($map, $sprite, $percent);
}
}
}
}
Die mixin kehrt keine Fehler bisher.
$my-icons-spacing: 10px; // give some space to avoid little pixel size issues on resize
@import "my-icons/*.png";
$my-icons-sprite-dimensions: true;
@include all-my-icons-sprites;
// the fun part
.small-icons { // overriding all sprites
@include resize-sprite-set($my-icons-sprites, 40); // 40% sized
}
.some-part-of-my-site {
@include resize-sprite-set($my-icons-sprites, 40, logo, ok); // will create overrides only for sprites "logo" and "ok"
}
Ich bekomme die folgende Fehlermeldung von der obigen Implementierung, wenn ich versuche zu kompilieren. Über Prepros App.
remove ../images/my-icons-s9e77ab1ef1.png
create ../images/my-icons-s9e77ab1ef1.png
error style.scss (Line 62 of _mixins.scss: Undefined mixin 'resize-sprite-set'.)
identical ../css/style.css
Keine Ahnung, ob es hilft, aber [scheint dies im Zusammenhang] (http: // Stackoverflow. com/fragen/12745682/kompass-sprite-bild-skalierung). Vielleicht könnten Sie uns zeigen, was nicht funktioniert? –
Ich habe den Code hinzugefügt, den ich verwende. – Chozen