做前端的稍微有点经验的都知道 可以通过合并小图片 来减少请求数,

最早可能都是通过 fw、ps 等工具来手动合并,

这种方式的缺点就不吐槽了,效率低,可维护性差 等等 ....

一些很厉害的人,往往会开发出很厉害的程序,来解决重复性的劳动,

1.  https://github.com/iazrael/ispriter

2.  http://www.uini.net/?p=870

3.  http://csssprites.org/

4.  more ...

这些工具,我都稍微了解过,但最后觉得比较好使(适合自己)的是 SmartSprites(http://csssprites.org/)

个人觉得它的好处:

1. 语法简易,控制灵活;

/** sprite: icon-14; sprite-image: url('../images/components/icon-14.png'); */

 首先定义 一个合并图片,定义内容包含,合并标识,合并图片生成地址,还有更多参数,比如:纵向还是横向合并,图片名字是否自动生成等 ....

.icon-add-14
{
background-image:url('@{bg-components-srpite-url}icon-add-14.png'); /** sprite-ref: icon-14;*/
}
.icon-batch-delete-14
{
background-image:url('@{bg-components-srpite-url}icon-batch-delete-14.png'); /** sprite-ref: icon-14;*/
}

使用时只需要在正常 gackgrund-image 后面加上 特定的注释语法,sprite-ref 指向开始的 sprite 定义,标识那几个小图合并到同一张图上,

这个也有更多的参数,比如:position 方式,margin 值 等等 .....

这样看起来是不是很简单明了,完全不破坏你原有的写法,只是增加注释而已!

2. 基于 cmd 命令,任何程序都可以调用

smartsprites.cmd --root-dir-path xxx  --output-dir-path xxx --css-file-suffix ""

指定一个 css 文件目录,指定一个输出目录,指定一个 css 文件生成后缀

当然这货也是有缺点的:

1. 基于 java ,所以必须需要 jre ;

2. 生成的 css 文件不能直接覆盖还有 css 文件,所以需要两个目录,一个 css 源目录,一个 css 输出目录;

3. 它是居于 css 注释语法,比如使用 Less 编译后 就会破坏其 注释语法, 这个我已经有处理 grunt-contrib-less-smartsprite

更多文档请移步 http://csssprites.org/

如果在使用 smartsprite 过程中有什么疑问,可以留言,共同讨论!

SmartSprites 智能批量合并 CSS 雪碧图的更多相关文章

  1. 使用compass自动合并css雪碧图(css sprite)

    本文转载自: 使用compass自动合并css雪碧图(css sprite)

  2. Css雪碧图

    Css雪碧图: CSS雪碧 即CSS Sprite,也有人叫它CSS精灵,是一种CSS图像合并技术,该方法是将小图标和背景图像合并到一张图片上,然后利用css的背景定位来显示需要显示的图片部分. 原理 ...

  3. 前端优化:css雪碧图实践应用详解

    一 为什么需要使用雪碧图 二CSS雪碧图原理及应用 前端是接近用户体验的一个项目组成部分,合适的优化能够大大减少网页响应时间,合理的资源加载自然成为了工作中的要务,现在就结合实例讲解到底什么是css雪 ...

  4. CSS雪碧图(精灵图)使用

    1:CSS雪碧图:CSS雪碧图 即 CSS Sprites,也有人叫它CSS精灵图. 2:雪碧图的由来:一个网站的页面需要大量的小图片或者小图标,但是大量的图片如果放在服务器上,每次当打开网站并且向服 ...

  5. css雪碧图(精灵图)与字体图标的介绍以及对比

    css雪碧图(精灵图)与字体图标的介绍以及对比 设想一个实际场景:在一个页面为了展示,我们放置了很多独立的小图片,浏览器在显示页面的时候,就需要向服务器就会发送很多请求,来获取并加载这些小图片,但是这 ...

  6. CSS Sprite、CSS雪碧图应用实例

    CSS Sprites技术被国内一些人称为CSS雪碧图,其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”, ...

  7. css雪碧图实现数字切换

    vue中 css 雪碧图应用及数字切换demo 1. CSS Sprites一般只能使用到固定大小的盒子(box)里,这样才能够遮挡住不应该看到的部分. 2.使用css雪碧图的优点: 利用CSS Sp ...

  8. gulp-css-spriter 将css代码中的切片图片合并成雪碧图

    NPM地址:https://www.npmjs.com/package/gulp-css-spriter/ 配置gulpfile.js: var gulp = require('gulp'),     ...

  9. css雪碧图制作

    使用css背景合并工具cssSprite 工具下载链接: http://download.csdn.net/download/wx247919365/8741243 1.选择文件 2.生成雪碧图 3. ...

随机推荐

  1. c++ 转化

    atof(将字符串转换成浮点型数)相关函数atoi,atol,strtod,strtol,strtoul表头文件#include定义函数double atof(const char *nptr);函数 ...

  2. redis配置密码认证,通过密码可以进行连接

    需求说明: 今天配置了一台redis服务器,想要也和其他的数据库一样配置用户名/密码的方式进行登录. 查找了一下,没看到配置用户名的地方,就是有认证密码,所以就做了测试,在此进行记录. 操作过程: 1 ...

  3. ubuntu网络配置命令

    Ubuntu网络配置例如: (1) 配置eth0的IP地址, 同时激活该设备. #ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up (2) 配置e ...

  4. 超全面的JavaWeb笔记day11<JSP&Session&Cookie&HttpSession>

    1.JSP 2.回话跟踪技术 3.Cookie 4.HttpSession JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态 ...

  5. row_number()over函数的使用(转)

    (转)http://hi.baidu.com/122439049/blog/item/0c9c48131b2734d5f7039e13.html row_number() OVER (PARTITIO ...

  6. php导出excel(xls或xlsx)(解决长数字显示问题)

    1)demo $titles = array('订单号','商品结算码','合同号','供应商名称','专柜','商品名称','商品货号','商品单价','商品总价','供应商结算金额','商品数量' ...

  7. 如何连接 MySQL

    操作如下: [root@localhost ~]$ mysql -uroot -p' # 本地连接 MySQL 服务 [root@localhost ~]$ mysql -uroot -p' -h19 ...

  8. STM32的操作过程,寄存器配置与调试过程(转载)

    很多学习stm32的,为什么学习stm32他也不知道,我们所知道的就是各个论坛讨论stm32的很多,而我们很多人之所以学习stm32是很多的淘宝卖家做了大量的图片文字宣传,于是我们经不住诱惑就买了板子 ...

  9. 复习前面一个月的学习C#感觉道路好艰难啊

    今天是复习前面学习的内容,感觉这一个月来真的学习了很多,但是掌握的不好,好多都是在老师讲完课后做起来练习感觉这知识用起来蛮轻松地,但是经过昨天和今天的复习发现好多还是给忘记啦,甚是失落啊,刚开始就知道 ...

  10. 《C++ Primer Plus》10.3 类的构造函数和析构函数 学习笔记

    10.3.1 声明和定义构造函数构造函数原型:// constructor prototype with some default argumentsStock(const string &c ...