CSS Sprites探讨

2016-02-20 00:07 13 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的CSS Sprites探讨教程,一起来看看吧!超容易上手~

【 tulaoshi.com - Web开发 】

原文:CSS雪碧:要还是不要?
译自:To Sprite Or Not To Sprite

声明,本文中所称 CSS雪碧 即为CSS Sprites,这个词组一直没有一个固定或者约定俗成的中文翻译,一些人开始称之为CSS雪碧,我们且当作一次尝试吧,如果大家觉得不妥,今后还会继续直称CSS Sprites。神飞(vocal)

CSS雪碧已经出现一段时间了,并上升为一种可以让你的网站速度变快的方式。Steve Souders刚刚在 Velocity ‘09上展示了SpriteMe! (讨论为什么在你可以使用canvase和toDataURL和及时生成雪碧的时候还要使用CSS雪碧生成器或其它基于服务器的工具?)。然而,关于CSS雪碧有一些误解,最主要的一个就是它们没有缺点。

CSS雪碧的基本原理是把你的网站上用到的一些图片整合到一张单独的图片中,从而减少你的网站的HTTP请求数量。该图片使用CSS background和background-position属性渲染(值得一提的是,这也就意味着你的标签变得更加复杂了,图片是在CSS中定义,而非img标签)。

CSS雪碧的最大问题是内存使用。除非这个雪碧图片是被非常小心的组织,你就会最终使用大量的无用的空白。我最喜欢的例子是来自于WHIT TV的网站,那里的 这张图片 用作精灵。注意这是一个1299×15,000像素的PNG图片。它也被压缩的很好实际下载大小只有大概26K 但是浏览器并不会渲染压缩后的图片数据。当这个图片被下载并被解压缩之后,它将占用差不多75MB的内存 (1299 * 15000 * 4)。如果这个图片并没有使用alpha透明,它将会被优化至1299 * 15000 * 3,但是要在损失渲染速度的情况下。即使那样,我们也会讨论55MB。这张图片的大部分其实就是空白,那里什么都没有,没没有任何有用的内容。只是加载 WHIT主页 就会导致你的浏览器的内存占用上升到至少75+MB,仅仅是因为那一张图片。(PS:遗憾的是,该网站最近已经改版,文中提到的图片已经不存在了

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

有利于网站的正确的取舍并不存在。

另外一个(虽然并没有那么重要)不足就是如果一个使用CSS雪碧的页面使用一些浏览器提供的整页缩放功能缩放了,浏览器就需要做一些额外的工作来纠正这些图片边缘的行为基本上来说,是为了避免雪碧中相邻的图片被露进来。这对于小图片没有什么问题,但是对于大图片会是一个性能下降。

当然有一些显示CSS 雪碧的明显的好处的例子,主要的例子就是合并一批相同大小的图片到一个文件中。例如,一系列用作标识你的网站中的很多东西的16×16图标,或者是一些用作分类的头之类的32×32 的图标。但是整合严重不同尺寸的图片,特别是将又瘦又高的图片和又宽又矮的图片放到一起从来不是什么好主意。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

然而,CSS雪碧确实提高页面加载时间(至少在初始的页面加载中在后续的页面加载中,浏览器就将图片缓存了)。有没有什么可以替代的?不幸的是,还没有一个可以替代的方案。很多浏览器开始支持离线清单了,将其扩展到允许下载一个包含一系列资源和对应的URL的清单的文件(比如一个jar/zip文件)或许是有可能的。但是任何此类做法在一段时间内还不会见到

所以,在决定是否要使用CSS雪碧的时候,要注意在最初页面加载性能之外还有很多的因素。作为一个普通的经验法则,如果你的CSS 雪碧的大部分地方不包含真正的图片内容,你应该相应的避免使用它。同样,关注将来可能出现的既保持页面加载速度,同时注意避免内存的缺陷和雪碧的性能影响。

其它的CSS雪碧的不足

下面是一些网友在该文评论中提到的CSS雪碧的某些不足:

CSS 雪碧调用的图片不能被打印,除非在@media中特别添加 print声明by RichB 如果要修改雪碧中的一个图片,你就要修改整张图片,这无疑会增大工作量 by Tom B

如果你在使用的过程中,有发现其它的CSS雪碧的不足,欢迎提出来。

来源:http://www.tulaoshi.com/n/20160220/1631327.html

延伸阅读
标签: Web开发
相关文章:CSS教程:简单理解em 秦歌(YanKaven)的站点:http://dancewithnet.com/ 今天是 Firefox3的2008下载日 ,这就意味着Firefox3正式发布了。Firefox3有众多的改进和新功能,我最关注的功能之一是 全页面缩放(Full page zoom) 。这就意味着Firefox3和Opera以及IE7+都可以让用户完全控制显示内容的大小同时自动调整页面布局和结构,...
标签: Web开发
用W3C标准建造的网站,从理论上来说可以做到完全的表现与结构相分离。打个比方,就是可以在不动骨架(结构,XHMTL)和肌肉(行为,Javascript)的前提下,彻彻底底地换一身皮(表现,CSS)。 当然,换皮之前你需要先按W3C标准建好你的网站,并且为它准备两套表现不一样的CSS。“换皮”实质上就是“换CSS”,我们要做的,只是用某种方...
标签: Web开发
有很多网页中的CSS链接与引用是这样写的: style type="text/css" media="screen" @import url("http://www.webjx.com/abc.css"); /style 而很多网站使用的都是link link rel="stylesheet" rev="stylesheet" href="webjx.css" type="text/css" media=&quo...
标签: Web开发
在google中搜索一下css sprites这个名称,会查出很多信息,并且随着SEO越来越被人们重视,采用这种技术来进行图片优化的网站越来越多,国内几家大型门户网站无不仿效。如新浪,网易,搜狐。你下载一下他们的网站上的图片,你会看到他们 将很多小图片全部集成在一张图片上 。 这样做的好处是不言而语: 加速图片显示 利用CSS技巧减小HTTP请求 ...
一、首先,我们来看一下效果图,这是新浪微博的Tab滑动效果。我们可以手势滑动,也可以点击上面的头标进行切换。与此同方式,白色横条会移动到相应的页卡头标下。这是一个动画效果,白条是缓慢滑动过去的。好了,接下来我们就来实现它。 二、在开始前,我们先要认识一个控件,ViewPager。它是google SDk中自带的一个附加包的一个类,可以用来...

经验教程

11

收藏

21

精华推荐

sql优化器探讨

sql优化器探讨

rshitibi085

VB访问SQLServer的探讨

VB访问SQLServer的探讨

国安newbility

教养问题大探讨(二)

教养问题大探讨(二)

霸王别急眼_

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部