CSS 精灵图的使用

前言

在浏览网页时,我们可能会发现,大多数的带图标的超链接,并非是如我们所想——用<a>包裹<img>来实现的,而是给<a>设置背景图。在这张背景图中,不光有当前超链接对应的图片,还有其他超链接的图片,它们共同组成了这张大的的背景图。这样的背景图我们称之为精灵图。

淘宝中带图标的超链接

淘宝中带图标的超链接

对应的精灵图

图标超链接对应的精灵图

精灵图的使用

  • 使用精灵图的原因

    使用精灵图可以减少向服务器请求图片的次数以及相应产生的资源。每次请求图片资源,都会花费一定的请求时间,这和图片大小无关,减少请求次数,即可减少总请求时间。此外,每次在传输数据时,都在数据前加上一些传输协议的头部,这和数据大小也无关。适当增加图片大小,可以减少传输次数,进而减少数据头所占据的资源。
    数据包组成

  • 精灵图的实现原理
      精灵图中有多个图标,如何在对应的超链接中展示对应的图标呢?
    

    我们可以认为,元素和它的背景图是相对独立的,元素只是展示背景图的一个窗口。我们可以移动背景图的位置,来使得我们需要的图片内容来到元素视窗的位置。

    我们为元素设置一张背景图,但从元素的视窗中只能看到海绵宝宝的半张脸。海绵宝宝为了能够展示它完整的脸庞,就需要相对与窗口进行移动。默认情况下元素与其背景图的位置关系

    默认情况下元素与其背景图的位置关系

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值