有没有办法让指南针从不同样式表中的图像生成精灵表?
tutorial谈论从文件夹中的一堆图像生成精灵,然后在1样式表中使用它。但对我来说,在我使用精灵表的所有样式表中使用以下内容似乎都是直截了当的:
@import "icon/*.png";
@include all-icon-sprites;
我希望为每个精灵表设置不同的图像,然后一些如何标记它们用于精灵生成,以便罗盘可以将它们收集到精灵中,然后更新css以反映它。
答案 0 :(得分:3)
Compass每个目录只生成一个精灵。这很好,因为它可以被浏览器缓存,如果你在多个页面上使用它,就不需要获取它。您可以反复使用该精灵,甚至可以选择性地使用您引用的教程中介绍的选择器控件。
想象一下,在您的图片文件夹中有四个图标:
在名为fruits.sass
的样式表中,您可以导入所有图标,并仅使用apple
和banana
图标。
@import "icon/*.png";
.fruits
.banana
+icon-sprite(banana)
.apple
+icon-sprite(apple)
在名为sports.sass
的样式表中,您可以导入所有图标,并仅使用basketball
和football
图标。
@import "icon/*.png";
.sports
.football
+icon-sprite(football)
.basketball
+icon-sprite(basketball)
编译时,会在icon-sjargon1.png
中生成一个名为images
的精灵。
您生成的fruits.css
类似于:
.icon-sprite,
.fruits .banana,
.fruits .apple { background: url('/images/icon-sjargon1.png') no-repeat; }
.fruits .banana { background-position: 0 -20px; }
.fruits .apple { background-position: 0 0; }
您生成的sports.css
将如下所示:
.icon-sprite,
.sports .football,
.sports .basketball { background: url('/images/icon-sjargon1.png') no-repeat; }
.sports .football { background-position: 0 -60px; }
.sports .basketball { background-position: 0 -40px; }
答案 1 :(得分:0)
您还可以将精灵放在单独的文件夹中。 例如:
@import "themeOne/*.png";
@include all-themeOne-sprites;
@import "themeTwo/*.png";
@include all-themeTwo-sprites;
当您的网站包含许多部分且某个特定部分必须具有不同的主题时,这非常有用。
最后一件事......
我不喜欢用@include all-themeOne-sprites;
添加所有精灵图像,我更喜欢这样做:
@import "themeOne/*.png";
.somebox .icon {
@include themeOne-sprite(anyIcon);
}
如果您希望将.somebox .icon
的大小设置为anyIcon图像,则可以在图标名称后添加true参数,如下所示:
.somebox .icon {
@include themeOne-sprite(anyIcon, true);
}
我希望它有所帮助!