使用compass更高效的编辑css --- 图片精灵
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 --- 图片精灵的更多相关文章
- 【CSS sprites (CSS图片精灵) 详解】
本文包含 CSS sprites 简介.原理.适用在哪些类型的网页制作中.背景图片的 position 值如何确定以及制作 sprites 的技巧. [CSS sprites 简介] CSS Spri ...
- css图片精灵
<ul> <li class="top"> <em>01</em> <p><a href="http:/ ...
- 如何更高效地定制你的bootstrap
bootstrap已经作为前端开发必不可少的框架之一,应用bootstrap使得我们对布局.样式的设定变得非常简单.但bootstrap提供的默认样式往往不能满足我们的需求,从而定制化bootstra ...
- 这些小工具让你的Android 开发更高效
在做Android 开发过程中,会遇到一些小的问题.尽管自己动手也能解决.可是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vy ...
- CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(1)设定背景图
技术的新发展,除计算机可以接入互联网之外,平板电脑.智能手机.智能电视等其他设备均可访问互联网.在多设备时代,构建多屏体验也不是听说的那么难. 但是这也增加了学习CSS的难度?不知道如何上手,只懂一点 ...
- 转:利用node压缩、合并js,css,图片
1.安装nodejs http://nodejs.org/ 2.安装各自的node package js我用的是UglifyJS github地址:https://github.com/mishoo/ ...
- CSS图片列表
1.效果图: 2.Example Source Code <h3><a href="http://www.52css.com/">我爱CSS画廊</a ...
- 使jQuqer更高效的方法
讨论 jQuery 和 javascript 性能的文章并不罕见.然而,本文我计划总结一些速度方面的技巧和我本人的一些建议,来提升你的 jQuery 和 javascript 代码.好的代码会带来速度 ...
- Android高效内存:让图片占用尽可能少的内存
Android高效内存:让图片占用尽可能少的内存 一.让你的图片最小化 1.1 大图小图内存使用情况对比 大图:440 * 336 小图:220 * 168 小图的高宽都是大图的1/2--> ...
随机推荐
- android开发技巧
1 Android去掉listView,gridView等系统自带阴影 当我们使用listView的时候,拉到顶,或是拉到底部的时候,我们会发现有系统自带的阴影效果出现,不同手机出现的颜色可能还会不一 ...
- leetcode70
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- java 多线程 一个博客
http://blog.csdn.net/a352193394/article/category/2563875 Java多线程之~~~线程安全容器的非阻塞容器 在并发编程中,会经常遇到使用容器.但是 ...
- 老鸟需要知道的一些php系统类函数
作为一个老手级别的php程序员,知道下面几个php系统级别的函数,不足为多吧!获取系统信息和调试程序的时候应该能用的上! PHP系统类函数 assert函数:检查assertion声明是否错误 ext ...
- WebForm(aspx,cs,dll之间的关系)
WebForm分为两个文件aspx和aspx.cs,aspx是页面模板,是页面描述文件,就是html的内容,和aspx结合的更好,不用像一开始那样程序员自己去填充模板,控件都是定义在aspx中,内联的 ...
- LNMP环境的安装配置
0.安装必要的依赖软件 如果已经安装了可能会进行升级,版本完全一致则不会进行任何操作. yum -y install bzip2-devel curl-devel freetype-devel gcc ...
- perl-cgi高级
来源: http://www.cnblogs.com/itech/archive/2012/10/07/2714393.html 一 CGI.pm中的方法(routines)调用 1. CGI.pm ...
- Spring 与 mybatis整合---事务管理
MyBatis与Spring整合前后事务管理有所区别 整合前:通过 session = sessionFactory.openSession(true); //或者是false 设置事务是否自动提交: ...
- 使用Spring 3的@value简化配置文件的读取 (转)
Spring 3支持@value注解的方式获取properties文件中的配置值,大简化了读取配置文件的代码. 1.在applicationContext.xml文件中配置properties文件 & ...
- 贪心<haonan>
题意: 有一列数,每次在相邻的两个书里面选择一个大数留下,同时ans+大数.问题是,求ans的最小值. 题解: 如果a[i]>a[i-1],那么ans+=a[i]; 如果a[i]>=a[i ...