Sass 使用中有一个 Amazing 的功能,配合着 compass 能够做出非常多高效的工作,首当其冲的就是自动化雪碧图工具。
雪碧图自然不用多说,做过前端的开发都知道雪碧图。好处呢在于能够大大节约网络的开销,把Http请求降低。自然在原来的前端开发中,制作的成本也是偏高。环境安装请看这里?http://www.html-js.com/article/CSS-solves-the-installation-and-debugging-of-SASSCompass-scheme
环境Ok之后,通过命令确认安装完毕。
创建工程请执行 compass create app
Compass自动为我们生成了相关的文件目录。好吧,开搞!进入项目目录,运行 compass watch 来实施监控文件发生的变化。实施编译Sass。 之后写入这样的代码段。
@import "compass/reset";
//通过在SASS文件中使用import来自动生成雪碧图
/*
首先声明布局模式4种
vertical 垂直
horizontal 水平
diagonal 对角线
smart 智能排列
*/
$toolbar-layout: 'smart';
//包含的文件夹路径
@import "../images/icons/*.png";
//混合宏sprites,COMPASS内置方法,能够通过文件名
//来生成相应的CSS代码片段
@include all-icons-sprites;
@mixin icon-base($icon_name){
display: inline-block;
margin: 10px;
text-indent: -9999px;
@include icons-sprite($icon_name);
}
//图标iphone
.iphone_icon{
width: 256px;
height: 256px;
@include icon-base(iphone);
}
//图标B
.login_icon{
width: 100px;
height: 25px;
display: block;
@include icon-base(login);
}
通过观察,我们不难发现,原来image文件中的文件名,就是class样式中的名字,规则是根据 “文件夹-文件”这样的规则生成。
这样应用起来是不是很快呢?
这种写法一个需要注意的地方就是在于文件夹和文件的放置位置。SASS生成的代码完全是根据文件夹和文件的位置决定的。更好的规划图片当然能够获得更加易读的代码。比如:
Image根目录
|___ icon
|____ icona.png
|____ iconb.png
|___ banner
|_____ a.png
|_____ b.png
对应的Sass语法则是
@include all-icons-sprites;
@include all-banner-sprites;
//在这里我们使用B
div{
@include banner-sprite(a);
}
源代码和注释已上传,有需要的朋友可以下载研究。