css-sprite是一个很好的技术吗?

时间:2009-09-25 13:37:20

标签: css css-sprites

  1. 是css-sprite好技术吗?我在http://spriteme.org/阅读了它的专业知识,并且我在stackoverflow中也看到了很多关于css sprites的问题。

  2. 它的缺点是什么?

  3. 它是否可以在其网站中声明的所有浏览器中使用?

6 个答案:

答案 0 :(得分:19)

是的,这是一项很好的技巧。

您可以减少HTTP请求的数量,这是一种页面优化技术。

中的第一条规则

Best Practices for Speeding Websites by Yahoo

最小化HTTP请求

  

最终用户响应时间的80%是   花在了前端。其中大部分   下载所有的时间都被束缚了   页面中的组件:图像,   样式表,脚本,Flash等   减少中的组件数量   转减了HTTP的数量   呈现页面所需的请求。   这是加快页面的关键。

     

CSS Sprites 是首选方法   用于减少图像数量   要求。结合你的背景   图像成单个图像并使用   CSS背景图像和   background-position属性   显示所需的图像片段。

     

减少数量的一种方法   页面中的组件是为了简化   页面的设计。但有办法吗?   构建内容更丰富的页面   同时也实现快速反应   次?以下是一些技巧   减少HTTP请求的数量,   同时仍然支持丰富的页面   设计。

当您需要更改精灵内部图像的尺寸时,您必须重新计算图像的偏移量。但我不认为这是一个巨大的负担。

几乎所有现代浏览器都支持它。

这也是关于CSS sprites的好文章

<强> CSS Sprites: What They Are, Why They’re Cool, and How To Use Them

答案 1 :(得分:4)

适用于IE 6 Safari Opera 8+和FF2 +。 你应该读这个:

Gif Compression

它解释了如何压缩GIF(和其他图像文件)。 例如,在“行”而不是“列”中显示相同的数据会显着减少空间使用。

此外,您预先加载所有图像,如果您交换图像,则没有延迟。

另一个好处是你可以使用一个精灵用于“红色”设计,另一个精灵用于“蓝色”设计。

但是有一个缺点

大多数浏览器都会缓存图像精灵。 因此,在更新精灵时可能会遇到麻烦。

答案 2 :(得分:2)

这是一项很棒的技巧,但你必须要非常谨慎,因为它在每个浏览器中都能正常工作。

它可以完成并且是一个很好的优化提示,但是一如既往地注意它在IE,Firefox和Chrome中的工作方式。

缺点是它不能一直使用,你必须坚持使用跨浏览器CSS支持的最小公分母。

答案 3 :(得分:2)

如果做得好,它应该适用于所有浏览器(甚至是IE6)。

我能想到的最大的问题是,如果你在一个精灵中有太多的图像,并且需要改变其中一个精灵的尺寸,它可能会导致你必须改变很多CSS(因为偏移对于其他图像也可能会改变)

答案 4 :(得分:2)

我遇到的一个缺点是CSS sprites似乎在许多浏览器中都没有正确打印

答案 5 :(得分:0)

当然,因为它节省了很多http请求,这对您的网站加载时间非常重要。

查看此页面:

http://www.tutorialrepublic.com/css-tutorial/css-sprites.php

它有一个很好的解释和你需要知道的关于CSS Sprite的一切。