compass是sass的一个库,关系相当于js中的jq。比较可惜的是compass的文档比较混乱 看的不太舒服,下面是compass的文档地址,有兴趣的可以去看看

  http://compass-style.org/help/documentation/

  在这里我就不仔细讲compass的知识了,可以去阮一峰的博客里面有一遍compass的介绍,附上链接地址

  http://www.ruanyifeng.com/blog/2012/11/compass.html

  这里主要讲的是图片精灵,我们在网上可以找到很多关于compass使用图片精灵的方法,比较可惜的是不太满足我们的需求,所以做了如下改变

  需要注意的是config.rb上面要写上合成雪碧图的路径

http_path = "/"
css_dir = "dist/css"
sass_dir = "src/sass"
images_dir = "dist/img"
javascripts_dir = "src/js"
sprite_load_path = "src/img"
output_style = :compressed
asset_cache_buster :none

  编译之前的sass代码:

@charset "utf-8";
@import "compass/utilities/sprites";
@import "compass/css3/background-size"; // 公用图片精灵的配置信息
$sprites_common: sprite-map("common/*.png", $spacing: 10px, $layout: vertical,$sort-by: '!width',$position:10px,$repeat:no-repeat,$clean-up:true); @mixin img-sprite($sprite, $name, $sprite-name) {
//获取当前图标的图片名字
$imgurl: sprite-file($sprite, $name);
//获取当前图标的位置
$pos: sprite-position($sprite, $name); //根据名字获取获取长度和宽度,并设置
width: image-width($imgurl) / 2;
height: image-height($imgurl) / 2; //设置图标的位置
background-position: nth($pos, 1) / 2 nth($pos, 2) / 2;
//使用compass的Css3模块 兼容处理背景图片大小
@include background-size(ceil(image-width(sprite-path($sprite)) / 2) auto);
} @mixin img-common($name) {
@include img-sprite($sprites_common, $name, "common");
} //设定icon的图片信息
.common{
//下面这句代码会触发图标合成一张图
background-image: sprite-url($sprites_common);
background-repeat: no-repeat;
display: inline-block;
.icon-baike{
@include img-common('ic_baike')
}
.icon-ic_card_gongshang{
@include img-common('ic_card_gongshang')
}
}

  编译之后的css文件:

/* line 29, ../sass/ie.scss */
.common {
background-image: url('/img/common-sbb7f65b409.png');
background-repeat: no-repeat;
display: inline-block;
}
/* line 34, ../sass/ie.scss */
.common .icon-baike {
width: 18px;
height: 20px;
background-position: -5px -1870px;
-moz-background-size: 59px auto;
-o-background-size: 59px auto;
-webkit-background-size: 59px auto;
background-size: 59px auto;
}
/* line 37, ../sass/ie.scss */
.common .icon-ic_card_gongshang {
width: 30px;
height: 30px;
background-position: -5px -743px;
-moz-background-size: 59px auto;
-o-background-size: 59px auto;
-webkit-background-size: 59px auto;
background-size: 59px auto;
}

使用compass更高效的编辑css --- 图片精灵的更多相关文章

  1. 【CSS sprites (CSS图片精灵) 详解】

    本文包含 CSS sprites 简介.原理.适用在哪些类型的网页制作中.背景图片的 position 值如何确定以及制作 sprites 的技巧. [CSS sprites 简介] CSS Spri ...

  2. css图片精灵

    <ul> <li class="top"> <em>01</em> <p><a href="http:/ ...

  3. 如何更高效地定制你的bootstrap

    bootstrap已经作为前端开发必不可少的框架之一,应用bootstrap使得我们对布局.样式的设定变得非常简单.但bootstrap提供的默认样式往往不能满足我们的需求,从而定制化bootstra ...

  4. 这些小工具让你的Android 开发更高效

    在做Android 开发过程中,会遇到一些小的问题.尽管自己动手也能解决.可是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vy ...

  5. CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(1)设定背景图

    技术的新发展,除计算机可以接入互联网之外,平板电脑.智能手机.智能电视等其他设备均可访问互联网.在多设备时代,构建多屏体验也不是听说的那么难. 但是这也增加了学习CSS的难度?不知道如何上手,只懂一点 ...

  6. 转:利用node压缩、合并js,css,图片

    1.安装nodejs http://nodejs.org/ 2.安装各自的node package js我用的是UglifyJS github地址:https://github.com/mishoo/ ...

  7. CSS图片列表

    1.效果图: 2.Example Source Code <h3><a href="http://www.52css.com/">我爱CSS画廊</a ...

  8. 使jQuqer更高效的方法

    讨论 jQuery 和 javascript 性能的文章并不罕见.然而,本文我计划总结一些速度方面的技巧和我本人的一些建议,来提升你的 jQuery 和 javascript 代码.好的代码会带来速度 ...

  9. Android高效内存:让图片占用尽可能少的内存

    Android高效内存:让图片占用尽可能少的内存 一.让你的图片最小化 1.1 大图小图内存使用情况对比 大图:440 * 336    小图:220 * 168 小图的高宽都是大图的1/2--> ...

随机推荐

  1. mysql出现Can't connect to MySQL server on 'localhost' (10061)的解决方法

    网上搜索的一: 今天把mysql数据库拷贝到另外一台机上,结果连不上,报“Can't connect to MySQL server on 'localhost' (10061)“错误 到网上sear ...

  2. UIImageView的UserInteractionEnabled什么时候为no

    UIImageView作为背景,但直接把按钮或者UITextField放在上面无法相应事件 特殊子类的覆盖 userInteractionEnabled属性默认值为YES,但UIView的一些子类中对 ...

  3. velocity 教程

    1,<title> $!{product.name} - $!{title} $!{about.title} - $!{title} $!{news.title} - $!{title} ...

  4. IE10以下的placeholder不兼容问题

    $(function(){ if(!placeholderSupport()){   // 判断浏览器是否支持 placeholder     $('[placeholder]').focus(fun ...

  5. viewpager处理(二):设置当前item时,让viewpager不出现滑动动画

    我们在使用viewpager.setCurrentItem(position);的时候,viewpager出现滑动动画,如何去掉这个动画呢? 可以用viewpager.setCurrentItem(p ...

  6. php常用命令大全

    1.php -v 查看版本号   [root@rs-2 lib]# php -v   PHP 5.5.11 (cli) (built: Apr 29 2014 12:35:52)   Copyrigh ...

  7. code.google.com

    https://github.com/couchbase/sync_gateway/issues/492 This list shows the current base import paths, ...

  8. ASP.NET MVC3 系列教程 - 目录

    ASP.NET MVC3 系列教程 - 目录   I:ASP.NET MVC3 新增的功能 ASP.NET MVC3 系列教程 - Razor视图引擎基础语法ASP.NET MVC3 系列教程 - V ...

  9. ubuntu 上下载PHP的源代码

    参考: https://vpsineu.com/blog/how-to-build-and-install-php-5-6-9-from-source-on-ubuntu-14-04-vps/ 直接 ...

  10. 8.5 sikuli 集成进eclipse 报错:can't be found on the disk

    运行提示can't be found on the disk