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

本集合是有一位国外设计师收集整合,并由 oncoding翻译成中文的,感谢他们的辛苦贡献。CSS Sprites技术在国外并非什么新技术,只不过近两年(尤为08年开始)中国开始流行这个词,你们也开始愈来愈关注CSS Sprites这个没有标准中文翻译的技术。CSS Sprites这个词若是直译的话是”CSS精灵”的意思,它显然没法表达其技术的内涵。一般咱们把它叫作CSS图像拼合技术,固然还有人把CSS Sprites叫作”CSS贴图定位”。不管怎么叫,它的技术核心是不变的。javascript

您还能够参考如下JavaScript/CSS相关教程及资源:
43个实例xHTML+CSS(DIV+CSS)网页及导航布局教程
30个基于CSS的导航和按钮优秀设计教程
2008年最佳Web设计/前端开发技巧、脚本及资源总结
使用CSS为图片添加更多趣味的5种方法
精选30个优秀的CSS技术和实例php

什么是CSS Sprites?

“Sprite”(精灵)这个词在计算机图形学中有它独特的定义,因为游戏、视频等画质愈来愈高,必须有一种技术能够智能的处理材质和贴图,而且要 同时保持画面流畅。“Sprite”就是这样一种技术,它将许多图片组合到一个网格上,而后经过程序将每一个网格的内容定位到画面上。css

Sprite被定位到一副静态图片上,而且经过简单的程序或硬件便可正肯定位到画面上,一幅幅图片就像是被“变”出来的,他们并无单独占用内存,因此被取名为“Sprite精灵”。html

css-sprites

上图是口袋妖怪的组合图片,能够点这里欣赏更多。不是加载每一个但以图片前端

时间进行到2000年,Web设计向着精致、巧妙的方向发展。设计师们开始考虑使用非Javascript的方 式制做鼠标滑过、悬停菜单的效果,这时CSS Sprite应运而生,它基于同上文提到的游戏Sprite一样的原理,而且使用CSS更容易控制,很快的流行开来。java

2004年,Dave Shea 提出了一种使用CSS控制组合图片的方案 ,将许太小的图片组合在一块儿,使用css定义背景属性,来控制图片的显示位置和方式。jquery

当页面加载时,不是加载每一个单独图片,而是一次加载整个组合图片。这是一个了不得的改进,它大大减小了HTTP请求的次数,减轻服务器压力,同时缩短了悬停加载图片所须要的时间延迟,使效果更流畅,不会停顿。web

CSS Sprites用在哪里?

CSS Sprites能够用在不少场合,大型网站能够将许多单独的图片,以有机的方式组合起来,从而使其便于维护和更新。图片之间一般会留出较大的空白,使 得图片不会影响网页的内容。但同时CSS Sprite大多使用于较固定的像素定位中,它的弹性较差,收到定位等因素的制约。因此,你须要在可维护性vs下降负载之间权衡利弊,选择最适合你的项目 的方式。小程序

下面是一些CSS Sprites的使用范例:服务器

Xing

这个网站将一些按钮、图标以及LOGO作成了CSS Sprites:

css-sprites

Amazon

亚马逊使用的大幅、整齐巧妙的CSS Sprites:

css-sprites-技术

Apple

苹果网站使用CSS Sprites来制做导航菜单的鼠标悬停效果:

css-sprites-教程

YouTube

YouTube使用了一个2008像素高的CSS Sprites:

css-sprites-资源

CNN
CNN使用了很是简单谨慎的方案:

css-sprites

Digg
Digg的方案比较复杂:

css-sprites-digg

Yahoo
Yahoo将他们漂亮的图标等距离排布起来:

css-sprites-yahoo

Google
Google使用了极其简化的方案:

css-sprites-google

Dragon Interactive

一个丰富多彩的CSS Sprites方案:

css-sprites

TV1.rtp.pt

一个很大很酷的CSS Sprites方案

css-sprites

CSS Sprites经常使用来合并频繁使用的图形元素,如导航、LOGO、分割线、RSS图标、按钮等。一般它们不会做为网页内容出现,由于涉及内容的图片并非每一个页面都同样。

关于CSS Sprites的文章

CSS Sprites: Image Slicing’s Kiss of Death

中文版:样式表贴图定位(CSS Sprites):图像切片的死亡之吻

最权威的CSS Sprites介绍文章之一

css-sprites-教程

CSS Sprites: What They Are, Why They’re Cool And How To Use Them
一篇图文并茂的介绍文章

css-sprites

How Yahoo.com and AOL.com Improve Web Performance With CSS Sprites

介绍Yahoo、AOL等网站使用CSS Sprites下降服务器压力的案例。

What Are CSS Sprites?
又一篇介绍文章

css-sprites

Sprite Optimization

Dave Shea的思考:是否是真的有必要简历复杂的大型CSS Sprites?答案是不!不要搞得太复杂,找到一个折中的方案才是正道。

CSS-教程

Creating Easy and Useful CSS Sprites

一篇教程,其源文件可下载学习

css-sprites

Fast Rollovers Without Preload

一个快速翻转效果的例子

css-sprites

CSS Sprites + Rounded corners

另外一个例子:使用CSS Sprites实现背景圆角

css-sprites

CSS Image Sprites

一篇教程

Optimize Your Website Using CSS Image Sprites

很是详细的教程,介绍了CSS Sprites的原理和应用方法。

css-sprites

Animated GIF For CSS Sprites

一个比较特别的应用

css-sprites

Image Sprite Navigation With CSS

怎样制做简单的悬停菜单效果

css-sprites

Advanced CSS Menu

仍是悬停效果

css-sprites

Creating and Using CSS Sprites

一个很是基本的教程

css-sprites

CSS Sprites视频教程

How to Use CSS Sprites
David Perel解释了CSS Sprites的基本概念,并演示了如何在网页中使用它,长度:10分钟

Creating Rounded Buttons With CSS Sprites
继续上面的教程,展现了如何制做滑动按钮

Exactly How to Use CSS Sprites
Andres Fernandez  展现了 CSS sprites如何加快加载时间和减小请求次数

How To Use CSS Sprites
Chris Coyier 展现了一个 CSS sprites的范例,他将8幅图片组合在了一块儿,而且使用jQuery制做了一个小程序。

Faster Page Loads With Image Concatenation
对于复杂的网站,减小图片请求数量能够减轻服务器负担,这是许多站长所但愿看到的。

CSS Image Sprites In 10 Minutes
另外一个关于导航菜单的教程

CSS: Using Percentages in Background-Image
介绍背景图片定位的方法

利用CSS Sprites制做图像映射(image maps)

使用CSS Sprites,你能够对一个对象的一小部分加载翻转效果,使用负值的背景图片位置( background-position ),你能够建立基于CSS的图像映射,下面的文章讲述了这一技术:

CSS Image Maps Using Sprites

一个基于CSS的图像映射的简单例子。你能够同传统的方式对比一下优劣。

css-sprites

City Guide Map Using Sprites
另外一个横向定位的例子

css-sprites

Advanced Map Using Sprites
一个更高级的技术。

css-sprites

CSS Sprites技术

CSS Sprites 2

Dave Shea 使用jQuery扩展了经典的CSS Sprites, 他的技术可让不一样的连接之间使用组合图片,即便用户禁用了Javascript。

CSS Sprites2 Refactored: Building an Unobtrusive jQuery Plug-In
Joel Sutherland 制做的jQuery插件,整理了Dave Shea的功能,并简化了初始化设置。

css-sprites

Background Repeat and CSS Sprites

什么状况下使用CSS Sprites

CSS Sprite: Photoshop Script Combines Two Images for CSS Hover
这是一个能够导入Photoshop的动做设置,可让你快速制做翻转按钮的背景图片。

css-sprites

Extending CSS Spriting
Jennifer Semtner 扩展了经典CSS Sprites技术,并讲述应该在何时使用它。

Sliding Doors Meets CSS Sprites
滑动门技术 “Sliding Doors of CSS.”

How to Preload Images When You Can’t Use CSS Sprites
如何处理CSS Sprites对网页内容的影响

JavaScript Sprite Animation Using jQuery
Alex Walker 结合CSS Sprites和jQuery,实现了“打开页面”的效果

css-sprites

IE6, CSS Sprites and Alpha Transparency
Julien Lecomte 讲述IE6下的透明hack问题

CSS Sprite 制做工具

Data URI Sprites

DURIS (Data URI [CSS] Sprites) 是一个管理网页图片的新工具,它能够最大限度的帮助你减小背景图片的数量,减小请求数。

css-sprites

Spritr
一个生成CSS Sprites的简单工具

Sprite Creator 1.0
同上

CSS Sprite Generator
制做CSS sprites 的Drupal插件

CSS Sprites Generator
这个工具容许你上传多张图片生成CSS Sprites和CSS代码

Projekt Fondue CSS Sprite Generator
它具备忽略重复图像,调整图像精度,肯定横向和纵向偏移,指定背景色和透明度,指定CSS前缀等众多功能。

css-sprites

SmartSprites
基于java的桌面程序

你能够继续以你本身的方式编写CSS和使用图像,有一个工具能够自动为你设置CSS Sprites,这里是PHP 版本 ,它是开源的,具体能够看: Chris Brainard’s Sprite Creator 1.0.
附:CSS属性background-position(图像背景位置)该如何设置

background-position(图像背景位置)这个属性是CSS中很是重要的属性。

根据CSS规范,background-position属性包含了两个(可选的)变量:水平位置(horizontal)和垂直位置(vertical),例如:

1. .introduction {
2.     background-image: url(bg.gif);
3.     background-position: [horizontal position] [vertical position];
4.     }

.introduction {         background-image: url(bg.gif);         background-position: [horizontal position] [vertical position];         }

使用这个属性,你能够定义块级元素的背景图像位置,可使用%百分比或px像素为单位来定义图像开始的位置,也可使用关键字:top left, top center, top right, center left, center center, center right, bottom left, bottom center, bottom right.

在“ background-position: x% y%;  ”这样一个语句中,x%指水平偏移,y%指垂直偏移,左上角是:0%,0%,右下角是:100%,100%,默认的是50%。

例如,你能够这样定义:

1. ul li {
2.     background-image: url(bg.gif);
3.     background-position: 19px 85px;
4.     },

这样背景图片就被定位到了距离左侧19像素,距离上边85像素。

关于这个属性,能够在这里找到更详细的资料:background-position (CSS property) 。

ps:感谢彬GO

相关文章
相关标签/搜索