compass的sprite就是让一个文件夹下的所有icon自动合并成一个临时的大图。
所有icon必须是非交错的png,否则会报没有unpack属性的错误,非交错就是用ps保存png的时候,会有
的选项
搜索了一天,发现没办法同时合并多个文件夹到一个图片上。https://github.com/chriseppstein/compass/issues/800
基本设置
比如目前my-icons有4张图片images/my-icons/new.png
images/my-icons/edit.png
images/my-icons/save.png
images/my-icons/delete.png
然后在scss文件中
@import "compass/utilities/sprites";
@import "my-icons/*.png";
@include all-my-icons-sprites;
就可以用.my-icons-delete
使用delete的背景图片
或者 可以用这种
@import "my-icons/*.png";
.actions {
.new { @include my-icons-sprite(new); }
.edit { @include my-icons-sprite(edit); }
.save { @include my-icons-sprite(save); }
.delete { @include my-icons-sprite(delete); }
}
这样看起来更舒服点
选项
- $<map>-spacing
合成图片之间的margin e.g $icon-spacing: 20px
- $<map>-repeat
背景图片的重复like $icon-repeat: repeat-x
- $<map>-position
背景定位,比如100%,就是把图片都往右边靠,宽度为最大的那张
- $<map>-clean-up
是否在每次创建新的图片时,删去旧的图片
- $<map>-sprite-dimensions
$<map>-sprite-base-class
$<map>-<sprite>-spacing
$<map>-<sprite>-repeat
$<map>-<sprite>-position
没明白什么用
有组成方式的选项
选项必须放在该import前面$[map]-layout
属性有Vertical(default,竖着放),Horizontal(横着放),Diagonal(从右上到左下),Smart(紧凑)
e.g $[map]-layout:smart;
会把图片都紧凑的压在一起,测试该选项会导致$<map>-spacing
失效
比如要给一个a加入4种状态时候的图片,e.g
icons:my-buttons/glossy.png
my-buttons/glossy_hover.png
my-buttons/glossy_active.png
my-buttons/glossy_target.png
@import "my-buttons/*.png";
a {
@include my-buttons-sprite(glossy)
}
a标签就自动获得4个状态的样式
要关闭这个功能在include前面加$disable-magic-sprite-selectors:true;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。