【问题标题】:Is css-sprite a good technique? [closed]css-sprite 是一种很好的技术吗? [关闭]
【发布时间】:2009-09-25 13:37:20
【问题描述】:
  1. css-sprite 是好技术吗?我在http://spriteme.org/ 阅读了它的优点,并且我在stackoverflow 中也看到了很多关于css sprites 的问题。

  2. 它有什么缺点?

  3. 它是否可以在其网站中声称的所有浏览器中运行?

【问题讨论】:

  • 我想补充一个问题:实现难,可维护性如何?
  • 与普通图像相比,实施和维护将更加困难,因为您必须手动计算偏移量。但我认为有 CSS 精灵生成器可以减少手动执行此操作的开销。

标签: css css-sprites


【解决方案1】:

是的,这是一个很好的技术。

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

第一条规则

Best Practices for Speeding Websites by Yahoo

最小化 HTTP 请求

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

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

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

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

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

这也是一篇关于 CSS sprites 的好文章

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

【讨论】:

    【解决方案2】:

    它适用于 IE 6 Safari Opera 8+ 和 FF2+。 您应该阅读以下内容:

    Gif Compression

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

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

    另一个优点是您可以将一个精灵用于“红色”设计,将另一个精灵用于“蓝色”设计。

    但是有一个缺点

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

    【讨论】:

    • 缓存将成为任何图像的问题,而不仅仅是图像精灵。
    • 您可以更改文件名(版本?)以解决缓存问题。
    • 但在某些浏览器中,图像会在刷新时重新加载,但背景图像不会。解决这个问题的一个简单方法是使用 url(my_sprite.png?v1)。所以你不必重命名文件,浏览器会强制重新加载它。
    【解决方案3】:

    这是一项很棒的技术,但你必须非常小心地操作它,以便它在每个浏览器中都能正常工作。

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

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

    【讨论】:

      【解决方案4】:

      做得对,它应该在所有浏览器(甚至 IE6)中都能正常工作。

      我能想到的最大问题是,如果您在一个 sprite 中有太多图像,并且只需要更改其中一个的尺寸,则可能会导致您必须更改大量 CSS(因为偏移量其他图像可能也会改变)

      【讨论】:

      • 是的,它更难维护。对于没有太大变化的东西,它是好的。
      【解决方案5】:

      我遇到的一个缺点是 CSS sprite 在许多浏览器中似乎无法正确打印

      【讨论】:

        【解决方案6】:

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

        查看此页面:

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

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

        【讨论】:

          猜你喜欢
          • 2011-07-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-12
          • 1970-01-01
          相关资源
          最近更新 更多