CSS Sprites技术,国内很多人也叫雪碧图,因为sprite麻 (你买一瓶雪碧就看得到大大的sprite字样了)

主要用于将网站的零碎图标的img标签取代,因为每个img标签引用的src就会造成一个http请求,将这些零碎的小图标合并到一起,

成为一张大图,就会一下子缩减数十个http并发请求量.

使用注意:它主要是对logo和其它一些设计的各种独特图标的加载优化而用的,如果用在网站的一些静态大图上反而会导致一个请求的http数据量过大,拖慢加载.

并且现在越来越多流行的方案是css字体图标svg标识等解决方案,它们是矢量(本体很小,且不会因放大而变形和不清晰)的,且有成熟开源的库 如fontawesome等

原理:

  • background-image
  • backgorund-position

当然我们不会笨到每个项目都费心的用ps先把图片拼接起来,然后一个图标一个图标去调整计算css position 截取需要的图标

我们可以给出需要这样处理的单个图标,然后直接得到需要的每个的css样式

比如我们可以使用在线的工具

Site:http://spritegen.website-performance.org/

Chinese Version:http://spritegen.website-performance.org/?action=home&lang=cn&change=Change

或者 我们可以使用开源的小工具软件(windows下exe文件)

https://github.com/iwangx/sprite

当然还有更好的选择前端工作流的grunt 的 task 的配置

使用grunt spritsmith 插件,自动化的生成需要的css,从而彻底的把我们从css图片整合中解放出来

(注意 @2x的图片需要保证是像素分辨率需要正好是1倍图的2倍数,即需要是偶数,否则会造成生成的css定位不准确)

github项目地址: https://github.com/Ensighten/grunt-spritesmith

在gruntfile.js里 定义任务

module.exports = function (grunt) {
grunt.initConfig({
sprite:{
all: {
src: 'path/to/your/sprites/*.png',
dest: 'destination/of/spritesheet.png',
destCss: 'destination/of/sprites.css'
}
}
}); // Load in `grunt-spritesmith`
grunt.loadNpmTasks('grunt-spritesmith');
}

代码clips:

使用grunt jit来自动创建加载任务
// Automatically load required Grunt tasks
require('jit-grunt')(grunt, {
cdnify: 'grunt-google-cdn',
sprite: 'grunt-spritesmith'
}); initConfig({}) 里
加入任务
sprite: {
all: {
src: 'app/images/icons/*.png',
retinaSrcFilter: 'app/images/icons/*@2x.png',
dest: 'app/images/spritesheet.png',
retinaDest: 'app/images/spritesheet@2x.png',
destCss: 'app/styles/_spritesheet.retina.scss',
padding: 2,
algorithm: 'top-down',
cssVarMap: function(sprite) {
sprite.name = 'icon-' + sprite.name;
},
algorithmOpts: {
sort: false
}
}
} /style
main.scss 引入
@import "spritesheet.retina";
@include retina-sprites($retina-groups); //媒体查询 传入图片选项组

CSS Sprites技术的更多相关文章

  1. 用DIV+CSS切割多背景合并图片 CSS Sprites 技术

    很久之前就在互联网网站和一些js插件中见过这种技术的应用,当时觉得很麻烦,就没有用,也没有去深究. 近段时间一直在做前台的一些东西,涉及到很多div+css的问题.这个东东我又碰到了,所以我花了点时间 ...

  2. CSS sprites 技术

    Css Sprites 技术逐渐流行,各大网站上都可以看到它的身影. 但从本质上,Css Sprites 只是 Css 技术的一个使用小窍门,初学者也能快速上手. Css Sprites 简单解释: ...

  3. CSS Sprites技术原理和使用

      在分析各个网站的CSS时,我们经常可以看到一些网站有很多的元素共享了一张背景图片,而这张背景图片包含了所有这些元素需要的背景,这种技术就叫做CSS Sprites. 淘宝的css sprites ...

  4. 如何使用CSS Sprites技术进行图片合并

    http://jingyan.baidu.com/article/066074d6757654c3c21cb02d.html

  5. CSS Sprites (CSS图像拼合技术)教程工具

    什么是CSS Sprites? “Sprite”(精灵)这个词在计算机图形学中有它独特的定义,由于游戏.视频等画质越来越高,必须有一种技术可以智能的处理材质和贴图,并且要 同时保持画面流畅.“Spri ...

  6. (转)CSS的Sprites技术

    Css Sprites 技术逐渐流行,各大网站上都可以看到它的身影. 但从本质上,Css Sprites 只是 Css 技术的一个使用小窍门,初学者也能快速上手. Css Sprites 简单解释: ...

  7. CSS Sprites (CSS 精灵) 技术

    CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢 ...

  8. 【CSS】CSS Sprites (CSS 精灵) 技术

    CSS Sprites CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不 ...

  9. CSS Sprites(CSS图像拼合技术)教程、工具集合

    本集合是有一位国外设计师收集整合,并由 oncoding翻译成中文的,感谢他们的辛苦贡献.CSS Sprites技术在国外并不是什么新技术,只不过近两年(尤其08年开始)中国开始流行这个词,大家也开始 ...

随机推荐

  1. 有一段<script>代码,效果是点击<p>就会弹出信息,但是有的<p>点击会有效果,有的没有效果

    问题:有一段<script>代码,效果是点击<p>就会弹出信息,但是有的<p>点击会有效果,有的没有效果 解决: 页面代码是至上而下执行的,如果你的这个标签在< ...

  2. 死锁-Java代码示例

    class MyThread implements Runnable{ private Object o1 = new Object(); private Object o2 = new Object ...

  3. Windows下安装Python数据库模块--MySQLdb

    ## 1.下载MySQLdb [去官网](http://pypi.python.org/pypi/MySQL-python/) 下载对应的编译好的版本(现在官网最新版本为1.2.5): MySQL-p ...

  4. 【word】html转doc的小研究

    html转doc,页眉页脚丢失 html 转 doc,是全屏铺满(缩放级别很高)

  5. Flask初学者:蓝图Blueprint

    蓝图这个名字好像就是根据单词Blueprint字面意思来,跟平常我们理解的蓝图完全挂不上钩,这里蓝图就是指Blueprint. 使用蓝图的好处是可以将不同功能作用的视图函数/类视图放到不同的模块中,可 ...

  6. 1014-34-首页15-计算原创微博的frame------计算cell的高度---计算 UILabel 的 CGSize 的方法

    一.总体思路: 在控制器中,每次拿到数据模型(请求了数据.加载新微博)的时候,就调用 - (NSArray *)stausFramesWithStatuses:(NSArray *)statuses, ...

  7. 【异常】The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.

    异常错误:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone ...

  8. [Uva11178]Morley's Theorem(计算几何)

    Description 题目链接 Solution 计算几何入门题 只要求出三角形DEF的一个点就能推出其他两个点 把一条边往内旋转a/3度得到一条射线,再做一条交点就是了 Code #include ...

  9. 关于DIV内文字垂直居中的写法

    最近在写UI,或多或少用到了CSS,在这记录一下,今天用到的DIV内文字垂直居中的写法, 因为所做的项目都是基于WebKit内核浏览器演示的,所以我们今天采用的是-webkit-box的写法: dis ...

  10. 项目中自己觉得比较好的Erlang语法

    1.Lists 中处理合并Key相同的Tuple CashInfo1 = [{?PAY_TYPE_YUANBAO, NeedYuanBao + OldNeedYuanbao}|lists:keydel ...