CSS 精灵图的使用;精灵图不见了;如果一次性设置多个精灵图

1. 先来一波排错:

为什么精灵图无法显示?

  • 容器太小,图片显示不全
  • 容器是行内元素,没有内容,宽高没有撑开。可以转化为块级/行内块,设置宽高

背景图片的url地址写错

  • 检查背景图片绝对引用/相对引用是否正确
  • background-position的尺寸没有用负数;没有加px单位
  • background-position的位置设置不正确
  • css类名添加错误

2. 精灵图是什么

也叫CSS sprites,把很多小图片拼合放到一张大的图片里。再利用background的属性进行精准定位到容器里

3. 适合什么

  • 适合小图标的icon素材,十几到几十像素。
  • 不适合大的产品图,不适合需要频繁更换的图片。

4. 为什么要使用精灵图

  • 使用精灵图能够减少请求服务器和服务器响应的次数,能够减少服务器的压力。
  • 服务器只需要响应一次大图片,页面上面很多小图标就都可以使用。

5. 精灵图的使用步骤

  • 设置好容器,调整容器的大小
    • <div class="box"></div>
  • 设置好背景图片的样式,背景图片的地址,背景图片的位置和大小
    •         .box {
                  width: 24px;
                  height: 24px;
                  margin: 100px auto;
                  background-color: pink;
              }

         

background: url(images/sprite.png) no-repeat;

添加如上代码,显示:

       

6. 精灵图能否调整大小

可以。

操作步骤是:

  •         按照原有的尺寸,先把精灵图摆放好,
  •         再把背景图片放大,修改【background-size】属性
  •         再调整【background-position属性】
  •         修改的是width,那么就需要调整x坐标的值;修改的是y,就需要调整y坐标的值。

  • 如上图,建议先改width,再改x坐标。
  • 此外,容器的大小可能也需要调整。
  • 最后,注意原本图片调整的宽高比,如果不同,图片可能会变形。

7. 多个循环精灵图

利用JavaScript代码实现,前提是精灵图的排布有规律。Y坐标第一个是0,第二个是-44px,第三个是-88px。

可以利用for循环 i*44 的算法即可实现

        var ul = document.querySelector('ul');
        var lis = ul.querySelectorAll('li');
        var index;
        for (var i = 0; i <= lis.length; i++) {
            index = i * 44;
            lis[i].style.backgroundPosition = '0 -' + index + 'px';
        }

最后的效果:

        

不需要一个个添加类名,修改【background-position】属性即可。

结尾:

学习id: 201903090124-12

现在是大三学生,学习到了前后端交互的mysql阶段,如有不对的地方,欢迎指正,一起努力呀。如有转载请注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值