CSS sprites 的优点及如何使用?

本贴最后更新于 667 天前,其中的信息可能已经事过景迁

2019-01-01

回答

CSS sprites 将多张图片合并为一张图片,从而减少浏览器对 HTTP 的请求数量,进而减少网页的加载时间。即使在 HTTP/2 协议下,这依旧可以减少网页的加载时间。

在 HTTP/1.1 中,每个 TCP 连接只允许一个请求。现代浏览器虽然可以打开多个(2-8)并行的 TCP 连接,但连接数量依旧有限。

HTTP/2 允许浏览器和服务器之间的多个请求在一个 TCP 连接上进行复用。 这意味着 TCP 连接被更有效的使用了:同一个页面在打开和关闭 TCP 连接的次数被减少了,客户端和服务器之间的延迟也被减少了。这样一来,数十个图片就可以在同一个 TCP 连接中并行加载了。

根据基准测试结果,尽管 HTTP/2 比 HTTP/1.1 要快 50%,但在大多数情况下,多个图片合并为一张图片的加载速度依旧要快于多个未合并的图片的加载。

想要在 CSS 中使用 sprites 需要用到 CSS 中的 background-imagebackground-positionbackground-size 属性,他们可以通过改变元素背景的图片、位置及大小来达到预期的效果。

加分回答

返回总目录

每天 30 秒

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:PipeSoloSymWide 等。

    1112 引用 • 3372 回帖 • 494 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 379 回帖 • 2 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    158 引用 • 410 回帖
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    274 引用 • 1355 回帖 • 188 关注

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • hanhuizhu

    HTTP1.1 不是默认 keep-alive,可以复用 TCP 链接吗?

    1 回复
  • Vanessa
    作者

    keep-alive 后 TCP 连接不会关闭,下个请求会继续复用该连接。 HTTP/1.1 中应该是只允许一个连接进行多个请求的逐个处理,HTTP/2 可以并行处理。

    1 回复
    1 操作
    Vanessa 在 2019-07-19 23:40:43 更新了该回帖
  • hanhuizhu

    嗯,多路复用是很高的提升点