-
ID:jzC0hj さんの質問

compassで質問です。

@import "foooo/*.png";
@include all-foooo-sprites;

の書き方でほぼ期待通りの結果が得られるんですが
コンパイル後の画像にマージンを設ける事ができません。

sprite-mapには$spacingのオプションがあるのですが
同じように設定できないものでしょうか?

みんなの回答 2 件

ID:jzC0hj さんの回答

質問主です。

$foooo: sprite-map("foooo/*.png", $spacing: 20px);
$foooo-sprite-dimensions: true;
$class: aaa, bbb, ccc;

@each $i in $class{
  .#{$i}{
    background:sprite($foooo, #{$i});
    @include sprite-dimensions($foooo, #{$i});

    &:hover{
      background:sprite($foooo, #{$i}_on);
      @include sprite-dimensions($foooo, #{$i}_on);
    }
  }
}


上記コードでスペースを設けることが出来るんですが問題があります。

  • $class配列の回数スプライト画像を作り直すので動作が重くなる。
  • $classに毎回画像名を入力しなければならない

できることなら
all-foooo-spritesですべて完結するのが理想です。

ID:NqVu1u さんの回答

ためしてないですが、スペースは$foooo-spacing: 20px;とかでだめでしょうか?
また画像の生成にはoily_pngというgemをインストールすることで、Compassがデフォで使ってるchunky_pngを高速化できるらしいです。

Sprite Customization | Compass Documentation

http://compass-style.org/help/tutorials/spriting/customization-options/
ID:jzC0hj

ありがとうございます!

下記の4行で完結しました

$foooo-spacing: 20px;
$foooo-sprite-dimensions:true;
@import "sprite/foooo/*.png";
@include all-foooo-sprites;

最終更新日:2014-05-22 (1,673 views)

関連するトピックス

ページ上部に戻る