2012-09-18 48 views
0

今天看到网站的来源,我发现了一些让我感到惊讶的东西。他们已经包含在CSS文件中的图像(见http://static.a.gs-cdn.net/webincludes/css/production-uri.css?20120521.1在css中包含图像

这让我很吃惊,当然加载一个大文件嵌入将需要更长的时间在一个现代的浏览器(即铬打完阄内容的同时请求的所有图像它需要),并且更难调试任何css问题。这是否正确,这种方法有没有优势?

+0

“这种方法有没有什么优势” - 我能想到的唯一一个就是图像混淆,即使如此,它看起来并没有什么好处。 – j08691

+0

你可以Google for'SpriteSheet' –

回答

5

在CSS中包含图像没有任何问题,尽管使用CSS sprites可能更有效。

这是有道理的使用UI元素(但不内容元素)CSS精灵,因为它减少HTTP请求的数量。

+0

+1提供更好的选择 - CSS精灵。 –

0

This is a good article详细介绍了这种方法的优点和缺点。

优点:

最大的原因是:它节省HTTP请求。除纯文档大小外,这是关于页面加载速度的首要因素。更少=更好。

缺点:

很难保持与所有嵌入式数据URI网站。更新图像并将其替换更容易。

你应该只在严重缓存的文档中使用它,就像你的CSS应该一样。如果CSS文件保存了6个HTTP请求,但只有该CSS文件缓存的时间和这些图片的缓存时间一样,才能使用300k而不是50k的CSS文件。

我个人从未使用过它。它节省了HTTP请求,但是用我认为不适合的东西来扩大你的CSS。为了清晰地分离问题,图像应该只是图像。

此外,您将难以缓存所有资源 - 如果您对CSS进行了一次更改,那么所有图像数据都会无缘无故地重新下载。

+0

你应该在你的答案中包含文章的重要部分。如果链接断开,你的回答就变得毫无用处。 –

+0

@NikolaK。感谢 - 公平点,将添加一个简短的总结。 –

+0

有问题的CSS或图片有多频繁?当用户重新访问您的网站时,他们的浏览器可能已将您的网站从缓存中清除(移动设备具有非常小的最大缓存)。指南针(Sass的扩展,CSS预处理器)具有生成图像数据字符串的功能,因此无需每次更新时都使用它。似乎没有很多缺点。 – cimmanon