Tôi đã dành 4 giờ qua để tìm cách tạo hình ảnh sprite bằng Compass và sass cũng tự động chia tỷ lệ từng hình ảnh riêng lẻ để sử dụng với thuộc tính kích thước nền.Hình ảnh và quy mô hình chữ nhật Compass
Không có gì tôi tìm thấy công trình, không thể tin rằng điều đó thật khó.
Có ai có ví dụ làm việc không?
Chỉnh sửa: Đây là những gì tôi có cho đến nay
@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);
}
}
}
}
Lợi nhuận mixin không có lỗi.
$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"
}
Tôi nhận được thông báo lỗi sau từ việc triển khai ở trên khi tôi cố gắng biên dịch. Qua ứng dụng Prepros.
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
Dunno nếu nó giúp, nhưng [này dường như liên quan] (http: // stackoverflow. com/questions/12745682/la bàn-sprite-image-scaling). Có lẽ bạn có thể cho chúng tôi thấy những gì không hoạt động? –
Tôi đã thêm mã tôi đang sử dụng. – Chozen