<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>前端观察 &#187; css sprites</title>
	<atom:link href="http://www.qianduan.net/tag/css-sprites/feed" rel="self" type="application/rss+xml" />
	<link>http://www.qianduan.net</link>
	<description>专注于网站前端设计与前端开发</description>
	<lastBuildDate>Wed, 08 Feb 2012 05:05:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CSS雪碧:要还是不要？</title>
		<link>http://www.qianduan.net/to-sprite-or-not-to-sprite.html</link>
		<comments>http://www.qianduan.net/to-sprite-or-not-to-sprite.html#comments</comments>
		<pubDate>Tue, 10 Nov 2009 10:21:09 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[雪碧]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=11520</guid>
		<description><![CDATA[本文讨论了CSS雪碧的一些不足，以纠正大家对CSS雪碧这种技术的盲目跟从或者误解。很少有一种技术是完美的…... ]]></description>
			<content:encoded><![CDATA[<p><strong>声明</strong>，本文中所称CSS雪碧即为CSS Sprites，这个词组一直没有一个固定或者约定俗成的中文翻译，一些人开始称之为CSS雪碧，我们且当作一次尝试吧，如果大家觉得不妥，今后还会继续直称CSS Sprites。——神飞</p>
<p><a href="http://http://www.qianduan.net/tag/css-sprites">CSS雪碧</a>已经出现一段时间了，并上升为一种可以让你的网站速度变快的方式。Steve Souders刚刚在<a href="http://www.stevesouders.com/spriteme/">Velocity &#8217;09上展示了SpriteMe!</a> (讨论——为什么在你可以使用canvase和toDataURL和及时生成雪碧的时候还要使用CSS雪碧生成器或其它基于服务器的工具？）。然而，关于CSS雪碧有一些误解，最主要的一个就是它们没有缺点。</p>
<p><span id="more-11520"></span></p>
<p>CSS雪碧的基本原理是把你的网站上用到的一些图片整合到一张单独的图片中，从而减少你的网站的HTTP请求数量。该图片使用CSS background和background-position属性渲染(值得一提的是，这也就意味着你的标签变得更加复杂了，图片是在CSS中定义，而非&lt;img&gt;标签)。</p>
<p>CSS雪碧的最大问题是内存使用。除非这个雪碧图片是被非常小心的组织，你就会最终使用大量的无用的空白。我最喜欢的例子是来自于WHIT TV的网站，那里的<a href="http://www.wthitv.com/images/bg_module.png">这张图片</a>用作精灵。注意这是一个1299&#215;15,000像素的PNG图片。它也被压缩的很好——实际下载大小只有大概26K — 但是浏览器并不会渲染压缩后的图片数据。当这个图片被下载并被解压缩之后，它将占用<em>差不多<strong>75MB</strong>的内存</em> (1299 * 15000 * 4)。如果这个图片并没有使用alpha透明，它将会被优化至1299 * 15000 * 3，但是要在损失渲染速度的情况下。即使那样，我们也会讨论55MB。这张图片的大部分其实就是<strong>空白</strong>，那里什么都没有，没没有任何有用的内容。只是加载<a href="http://www.wthitv.com/" >WHIT主页</a>就会导致你的浏览器的内存占用上升到至少75+MB，仅仅是因为那一张图片。<span style="color:#999">（PS:遗憾的是，该网站最近已经改版，文中提到的图片已经不存在了）</span></p>
<p>有利于网站的正确的取舍并不存在。</p>
<p>另外一个(虽然并没有那么重要)不足就是如果一个使用CSS雪碧的页面使用一些浏览器提供的整页缩放功能缩放了，浏览器就需要做一些额外的工作来纠正这些图片边缘的行为——基本上来说，是为了避免雪碧中相邻的图片被“露进来”。这对于小图片没有什么问题，但是对于大图片会是一个性能下降。</p>
<p>当然有一些显示CSS 雪碧的明显的好处的例子，主要的例子就是合并一批相同大小的图片到一个文件中。例如，一系列用作标识你的网站中的很多东西的16&#215;16图标，或者是一些用作分类的头之类的32&#215;32 的图标。但是整合严重不同尺寸的图片，特别是将又瘦又高的图片和又宽又矮的图片放到一起从来不是什么好主意。</p>
<p>然而，CSS雪碧确实提高页面加载时间(至少在初始的页面加载中——在后续的页面加载中，浏览器就将图片缓存了)。有没有什么可以替代的？不幸的是，还没有一个可以替代的方案。很多浏览器开始支持离线清单了，将其扩展到允许下载一个包含一系列资源和对应的URL的清单的文件(比如一个jar/zip文件)或许是有可能的。但是任何此类做法在一段时间内还不会见到……</p>
<p>所以，在决定是否要使用CSS雪碧的时候，要注意在最初页面加载性能之外还有很多的因素。作为一个普通的经验法则，如果你的CSS 雪碧的大部分地方不包含真正的图片内容，你应该相应的避免使用它。同样，关注将来可能出现的既保持页面加载速度，同时注意避免内存的缺陷和雪碧的性能影响。</p>
<h3>其它的CSS雪碧的不足</h3>
<p>下面是一些网友在该文评论中提到的CSS雪碧的某些不足：</p>
<ul>
<li>CSS 雪碧调用的图片不能被打印，除非在@media中特别添加 print声明——by RichB</li>
<li>如果要修改雪碧中的一个图片，你就要修改整张图片，这无疑会增大工作量——by Tom B</li>
</ul>
<p>如果你在使用的过程中，有发现其它的CSS雪碧的不足，欢迎提出来。</p>
<div>
<hr />原文：<a href="http://www.qianduan.net/to-sprite-or-not-to-sprite.html">CSS雪碧:要还是不要？</a><br />
	译自：<a href="http://blog.vlad1.com/2009/06/22/to-sprite-or-not-to-sprite/">To Sprite Or Not To Sprite</a><br />
	转载请注明出处，多谢！
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/to-sprite-or-not-to-sprite.html/feed</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>神圣的精灵</title>
		<link>http://www.qianduan.net/holy-sprites.html</link>
		<comments>http://www.qianduan.net/holy-sprites.html#comments</comments>
		<pubDate>Sun, 08 Nov 2009 14:37:09 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Resource]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[精灵]]></category>
		<category><![CDATA[雪碧]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=11514</guid>
		<description><![CDATA[CSS Tricks 前段时间搞了一个名为“炫耀一下你的精灵吧!”的比赛，很多网友贴出了很多很棒的CSS精灵图片。这里是CSS Tricks精选出来的一些精灵图片... ]]></description>
			<content:encoded><![CDATA[<div>原文：<a href="http://www.qianduan.net/holy-sprites.html" >神圣的精灵</a><br />
	整理自：<a href="http://css-tricks.com/holy-sprites/" >Holy Sprites</a></p>
<hr />
</div>
<p>CSS Tricks 前段时间搞了一个名为<a href="http://css-tricks.com/sprites-contest/">炫耀一下你的精灵吧!</a>的比赛，很多网友贴出了很多很棒的CSS精灵图片。这里是CSS Tricks精选出来的一些精灵图片。从中我们可以膜拜一下这些牛站们对CSS中用到的图片的处理方法。</p>
<p><span id="more-11514"></span></p>
<p>这些图片中的一些根据我们网站的需要可能有些压缩。但是本文的意思并不是让大家模仿他们，只是希望它们能给你一些灵感的火花！</p>
<p>PS:现在很多人开始称呼CSS sprite为CSS雪碧，我认为这是个很好的叫法，大家认为呢？——神飞</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/sprite-1.png" alt="" title="" width="382" height="196"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/nav_logo7.png" alt="" title="" width="164" height="106"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/dragon-sprite.jpg" alt="" title="" width="556" height="350"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/STORMINKspriteOLD.png" alt="" title="" width="416" height="157"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/apple-sprite.png" alt="" title="" width="558" height="152"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/socialbuttons.png" alt="" title="" width="432" height="72"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/jquery-ui.png" alt="" title="" width="256" height="240"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/yahoo-cn.png" alt="" title="" width="557" height="270"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/amazon.png" alt="" title="" width="410" height="307"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/cycle-news.png" alt="" title="" width="528" height="378"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/tech-icons.png" alt="" title="" width="210" height="140"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/youtube-sprite.png" alt="" title="" width="169" height="468"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/warsprite.png" alt="" title="" width="549" height="335"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/makesometime.png" alt="" title="" width="370" height="304"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/rachel.png" alt="" title="" width="391" height="414"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/tut9sprite2.jpg" alt="" title="" width="553" height="240"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/buttons_sprite.gif" alt="" title="" width="240" height="341"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/princespriteswb3.jpg" alt="" title="" width="561" height="637"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/timwright.jpg" alt="" title="" width="400" height="475"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/beersprite.jpg" alt="" title="" width="570" height="304"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/tommyday.jpg" alt="" title="" width="526" height="312"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/designbumb.jpg" alt="" title="" width="553" height="641"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/social_sprite16.png" alt="" title="" width="112" height="32"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/login-v2.png" alt="" title="" width="175" height="300"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/bg_sprites.jpg" alt="" title="" width="257" height="297"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/netsprite.png" alt="" title="" width="383" height="445"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/holy_sprites/mine-sprite.png" alt="" title="" width="64" height="48"></p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/11/toolbar_animation_20090618.png" alt="toolbar_animation_20090618" title="toolbar_animation_20090618" width="268" height="262"  /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/holy-sprites.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>CSS Sprites的一些技巧</title>
		<link>http://www.qianduan.net/css-spriting-tips.html</link>
		<comments>http://www.qianduan.net/css-spriting-tips.html#comments</comments>
		<pubDate>Wed, 06 May 2009 16:03:31 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css sprites]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=8922</guid>
		<description><![CDATA[众所周知，减少网站加载时间的最有效的方式之一就是减少网站的HTTP请求数。实现这一目标的一个有效的方法就是通过CSS Sprites——将多个图片整合到一个图片中，然后再用CSS来定位... ]]></description>
			<content:encoded><![CDATA[<div>译自：<a href="http://blog.mozilla.com/webdev/2009/03/27/css-spriting-tips/" target="_blank">Mozilla</a><br />
原文：<a href="http://www.qianduan.net/css-spriting-tips.html">CSS Sprites的一些技巧</a><br />
版权所有，转载请注明出处，多谢</div>
<p>众所周知，减少网站加载时间的最有效的方式之一就是减少网站的HTTP请求数。实现这一目标的一个有效的方法就是通过CSS Sprites——将多个图片整合到一个图片中，然后再用CSS来定位。</p>
<p><span id="more-8922"></span></p>
<p>下面是一张样图：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2009/05/0008262wq.png" alt="Sprite Example" title="Sprite Example" width="450" height="548" /></p>
<p>本文的目的并不是讲CSS Sprite如何让一个网站更快，而是说一些使用CSS Sprite的时候的一些最佳实践。</p>
<h3>不要等到你完成切片之后才开始sprite. </h3>
<p>如果你边切图边写CSS，然后等你完成了整个网站之后再来拼接这些图片到一个Sprite中，你就不得不完全重写你的CSS，你也必须要花费很多的时间来用PS拼接大量的图片——这是件令人倍感纠结的事情。但是如果边切图边整合，就会比较容易些。</p>
<h3>把图片放到它要显示的地方的相对的地方</h3>
<p>这个小技巧貌似比较难理解。我直到创建一个比较大的sprite的时候才理解到这一点。比如，如果我们希望一个图片出现在一个元素的左侧：</p>
<p><a href="http://www.qianduan.net/wp-content/uploads/2009/05/00033221v.png"><img src="http://www.qianduan.net/wp-content/uploads/2009/05/00033221v.png" alt="Sprite positioning example" title="Sprite positioning example" width="203" height="28" class="alignnone size-full wp-image-338" /></a></p>
<p>将那个图片放到sprite图片的右边(本文开始的那个sprite图片)。这样的话，当你通过CSS移动背景图片的位置的时候，基本上不可能有其它的小图片意外的出现在它的附近。使用Sprite的时候常常遇到的一个问题是图片会出现在它不该出现的位置。</p>
<h3>定位时避免使用bottom或right等</h3>
<p>当使用CSS sprite的时候，只用background-position: bottom -300px或background-position: right -200px;非常容易。这刚开始的时候是可行的，但是问题是，当你在宽度上或高度上扩展相关sprite图片的时候，原先设置的位置可能是错的，因为那个图片已经不再Sprite图片的底部或右部了。使用确切的位置来避免这个问题。</p>
<h3>给每个图片足够的空间</h3>
<p>就像你在本文顶部的实例图片看到的那样，那些小图片都被预留了足够的空间。为什么不把他们塞到一块来让sprite图片更小呢？ 因为使用这些图片的元素通常都会有大量的内容而且可能会需要扩展的间距，以至于其它图片不会意外出现。</p>
<p>例子：<br />
	<a href="http://www.qianduan.net/wp-content/uploads/2009/05/0003324lk.png"><img src="http://www.qianduan.net/wp-content/uploads/2009/05/0003324lk.png" alt="Variable content example" title="Variable content example" width="302" height="189" /></a></p>
<p>例子中的每个条目都有个带数字的图片作为背景图片。如果你仔细看了上面的那张图片，你可以看到这三个数字图片是如何错开排列的，这样如果内容增多，其它图片就不会意外出现。</p>
<h3>不用担心Sprite图片的像素大小</h3>
<p>如果你的网站经过良好的设计，那么你将会有一大堆的图片来整合进到sprite里面，这样你就需要你个非常大的sprite来恰当的放置这些图片。这是很不错的。sprite里的空白不会占用太多的文件大小。<a href="https://addons.mozilla.org/img/sprite.png?20081210">addons.mozilla.org上使用的Sprite图片</a>有1,000px&#215;2,000 px那么大，但是图片的大小仅仅<strong>16.7kb!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/css-spriting-tips.html/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>创建简单有用的CSS Sprites</title>
		<link>http://www.qianduan.net/useful-to-create-a-simple-css-sprites.html</link>
		<comments>http://www.qianduan.net/useful-to-create-a-simple-css-sprites.html#comments</comments>
		<pubDate>Tue, 04 Nov 2008 14:20:25 +0000</pubDate>
		<dc:creator>神飞</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[css精灵]]></category>

		<guid isPermaLink="false">http://www.qianduan.net/?p=267</guid>
		<description><![CDATA[CSS sprites (CSS精灵，也有人翻译成CSS妖精) 是一种通过整合图片来改善我们的页面的加载时间，减少服务器请求数的方法。在这篇文章里，我将教你如何来实现它们... ]]></description>
			<content:encoded><![CDATA[<h3>让我们从头开始吧. 什么是CSS Sprites?</h3>
<p>CSS sprites (CSS精灵，也有人翻译成CSS妖精) 是一种通过整合图片来改善我们的页面的加载时间，减少服务器请求数的方法。在这篇文章里，我将教你如何来实现它们。<span id="more-267"></span></p>
<p class="imp"><a title="Demo Page" href="http://www.ignacioricci.com/tutorials/sprites/demo.html">看一下演示</a> | <a title="download zip file" href="http://www.ignacioricci.com/tutorials/sprites/sprite-tutorial-download.zip">下载</a></p>
<p>为了搞清楚什么是CSS sprite ,这里是一张 <a href="http://www.google.com/">Google</a>制作的CSS 精灵图片：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2008/11/142026di9.png" alt="CSS Sprite made by Google" /></p>
<p>当你用谷歌搜索的时候，你会发现页面底部的分页，你会看到就像这样的东西： <strong>Gooooooooooooooogle.</strong> 字母 &#8216;o&#8217; 是用CSS sprite平铺的，这样就替代了重复加载15次字母，它只是加载了包含所有字母的精灵，一次完成。</p>
<h3>创建我们的CSS sprite &#8211; 步骤一: 制作图片</h3>
<p>Ok, 首先，我们必须制作我们的精灵图片。你可以使用Fireworks，Photoshop或任何你能使用的软件。这里是我做的：</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2008/11/142036z5q.png" alt="CSS Sprite Example" /></p>
<p>正如你看到的，精灵是由一些中间被1像素款的线划分开来的图像组成的。这种区分不是真的必须的，就像你所看到的谷歌的精灵，但当我们写CSS的时候它使我们的工作更加方便，请相信我。</p>
<h3>步骤二: 创建我们的精灵图片显示者(显示层)</h3>
<p>一旦我们制作了我们的精灵图片，我们必须制作一个<strong>透明的1px x 1px gif图片</strong>。这个图片稍后会是在我们的精灵里用来显示不同的图片的东西。</p>
<h3>步骤三：编写CSS代码</h3>
<p>首秀安，我们先创建一个类&#8217;sprite&#8217;，它将加载我们的Sprite图片。</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.sprite</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">../images/mySprite.png</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>在加载我们的精灵之后，我们必须精确定义里面的图片的高度和宽度。</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2008/11/142047mrz.png" alt="Width and Height of the Sprite Images" /></p>
<p>左右的图片有同样的高度，所有的应用也是，我可以给他们一个class来共用他们的高度。我将使用这两个class：&#8217;monster&#8217; 和 &#8216;application&#8217;。</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.sprite</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">../images/mySprite.png</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.monster</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">128px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.application</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">61px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>现在，我们必须定义每一个图片的宽度，因为他们是不同的。我们将为他们中的每一个定义一个class。</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.sprite</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">../images/mySprite.png</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.monster</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">128px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.application</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">61px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Monsters */</span>
<span style="color: #6666ff;">.doctor</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">103px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.octopus</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">89px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.wolf</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">115px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.star</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">126px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.dog</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">128px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Applications -*/</span>
<span style="color: #6666ff;">.css</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">61px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.activityMonitor</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">58px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.dashboard</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">51px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.quicktime</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">53px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.scanner</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">74px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>做完了？ Ok, 现在到最精彩的部分了。为了恰当的显示，我们必须对每一个图片定义个 background-position。 这个background-position <strong>必须一直</strong>有负值，因为我们的背景图片必须向左移动，来显示不同的图片。</p>
<p>我们必须让精灵里面的图片想左上角移动，因为那里是我们开始看图片的起点。<strong>那个角相当于</strong><strong> X轴的</strong><strong>0px, </strong><strong>Y轴的</strong><strong>0px。</strong></p>
<p>然而，我的精灵在左边和上边两个像素的空白，所以当我们定义元素的background-position时我们必须重视它们。</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2008/11/142054ywq.png" alt="2px Leftover in the CSS Sprite" /></p>
<p>记住background-position的第一个值, 是水平方向(x-轴) ，第二个是垂直方向(y-轴). 让我们完成我们的这头狼。我们的狼需要想左移动196px并向上移动 2px 。</p>
<p><img src="http://www.qianduan.net/wp-content/uploads/2008/11/142100ku3.png" alt="Defining the background-position of an image in the Sprite" /></p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.sprite</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">../images/mySprite.png</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.monster</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">128px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.application</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">61px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Monsters */</span>
<span style="color: #6666ff;">.doctor</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">103px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.octopus</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">89px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.wolf</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">115px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-196px</span> <span style="color: #933;">-2px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.star</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">126px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.dog</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">128px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Applications -*/</span>
<span style="color: #6666ff;">.css</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">61px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.activityMonitor</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">58px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.dashboard</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">51px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.quicktime</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">53px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.scanner</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">74px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>现在让我们用同样的方法来完成所有的图片：</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.sprite</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">../images/mySprite.png</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.monster</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">128px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.application</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">61px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Monsters */</span>
<span style="color: #6666ff;">.doctor</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">103px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-2px</span> <span style="color: #933;">-2px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.octopus</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">89px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-106px</span> <span style="color: #933;">-2px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.wolf</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">115px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-196px</span> <span style="color: #933;">-2px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.star</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">126px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-312px</span> <span style="color: #933;">-2px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.dog</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">128px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-439px</span> <span style="color: #933;">-2px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Applications -*/</span>
<span style="color: #6666ff;">.css</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">61px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-2px</span> <span style="color: #933;">-133px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.activityMonitor</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">58px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-64px</span> <span style="color: #933;">-133px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.dashboard</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">51px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-123px</span> <span style="color: #933;">-133px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.quicktime</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">53px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-175px</span> <span style="color: #933;">-133px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.scanner</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">74px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span><span style="color: #933;">-229px</span> <span style="color: #933;">-133px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>看一下这个元素的Y轴，所有的怪兽，和所有的应用(的Y轴)是一样的。这是因为他们在同样的垂直位置排在一行。因此，他们全部分享到顶部变现同样的距离。</p>
<h3>步骤四： 编写HTML 代码(小意思)</h3>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite monster doctor&quot; alt=&quot;Doctor Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span>
<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite monster octopus&quot; alt=&quot;Octopus Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span>
&nbsp;
<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite monster wolf&quot; alt=&quot;Wolf Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span>
<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite monster star&quot; alt=&quot;Star Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span>
&nbsp;
<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite monster dog&quot; alt=&quot;Dog Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span>
<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite application css&quot; alt=&quot;Css Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span>
&nbsp;
<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite application activityMonitor&quot; alt=&quot;ActivityMonitor Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span>
<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite application dashboard&quot; alt=&quot;Dashboard Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span>
&nbsp;
<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite application quicktime&quot; alt=&quot;Quicktime Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span>
<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;images/transparent.gif&quot; class=&quot;sprite application scanner&quot; alt=&quot;Scanner Image&quot; /<span style="color: #ddbb00;">&amp;gt;</span></pre></div></div>

<p>定义这些代码用我们之前做的透明的1PX x 1PX gif图片，添加样式，然后就是精灵的时间了！</p>
<h3>这个方法的现在</h3>
<p>要使CSS精灵工作的话，必须始终有一个宽度、高度和背景位置。如果你没有定义元素的高度或宽度，你将在那个图片上看到整个精灵图片。相当纠结但是还比较好接受。</p>
<h3>教程中用到的图标</h3>
<p>这个教程中用到的图标是David Lanham制作的<a href="http://iconfactory.com/freeware/preview/som3">Somatic Xtras 2 Icons</a> 。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.qianduan.net/useful-to-create-a-simple-css-sprites.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

