2つの異なるシナリオでコンパスによって生成されたアイコンスプライトを使用します。バックグラウンドサイズの有無にかかわらずフォルダからスプライトを作成する方法(コンパスを使用)
- 元のサイズのアイコンを使用してください。
- CSS3のプロパティ
background-size
を使用して、同じバージョンの小さいアイコンと同じアイコンを使用します。
私が最初にこれを行う:
$logo-spacing: 20px;
@import "logo/*.png";
@include all-logo-sprites;
は今、私はこれを使用することができます2番目の結果を達成.logo-twitter
など
二つのような(darren131/gist:3410875 - resize sprites in Compass)を一般的な作成CSS-クラスを使用することができます。
を@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
プロパティで元のサイズと2回、フォルダを2回インポートすることはできますか? アイコンを小さく表示する別の<div class="my-other-div-with-small-logos">
内のすべてのクラスを自動的に作成するには、上記の方法を変更しますか?
ここで間違った方向に考えていますか?
は、それが何らかの形で可能ですが、必要に応じてそれを拡張しています完全に生成されたループを持つために必要なすべてのクラスをスプライトマップ自体から取得するには? – escapedcat
私が知っていることではありませんが、あなたが本当にしたい場合は、必ずコンパスを伸ばすことができます。しかし、あなたがそれを明示的に参照したり、それを検索したりすることができるように、それが明白に言えば何かがあります。 – glortho
私はそれが私の最大の問題だと思います。私はCompass spriting-manualを通過しましたが、それを取得しません。私はもう一度見てみましょう。 – escapedcat