美文网首页让前端飞Web前端之路
你知道雪碧图吗?有哪些优缺点?

你知道雪碧图吗?有哪些优缺点?

作者: 伊泽瑞尔灬 | 来源:发表于2020-05-10 21:17 被阅读0次

这道题实际上考的是前端性能优化的一个点。
雪碧图的英文是CSS Sprites
其目的是将多张比较小的图片,合并到一张大的图片上面,大的图片背景透明,使用的时候,通过把该张图片当做背景图片,通过不同的 background-position定位来展示的那部分图片。

好处

  1. 降低服务器压力。
  2. 减少网络请求,页面渲染更快。

缺点

  1. 后期维护困难,添加一张图片需要重新制作。
  2. 应用麻烦,每一张图都需要计算位置,通过调整位置来展示图片,对误差的要求很严格。
  3. 使用图片有局限,只能用在背景图片background-image上,不能用<img>标签来使用。

制作雪碧图

推荐一个在线制作雪碧图的网站:网站

制作展示
只需要将自己想要的图片上传上去,就可以生成右边的雪碧图了,下载图片,就可以引用了,可以直接复制坐标的css代码来引用图片。
下面贴一个完整的例子:
<template>
  <div class="cssSprites">
    <h1>css雪碧图演示</h1>
    <ul>
      <li v-for="item in moodList" :key="item" :class="item"></li>
    </ul>
  </div>
</template>

<script>
    export default {
        name: "cssSprites",
        components: {},
        data() {
            return {
              moodList: ['bg-mood_afraid', 'bg-mood_angry', 'bg-mood_calm', 'bg-mood_expect', 'bg-mood_happy', 'bg-mood_miss','bg-mood_nervous', 'bg-mood_sad', 'bg-mood_surprised']
            }
        },
        methods: {

        },
        computed: {},
        created: function () {}
    }
</script>

<style lang="scss">
  .cssSprites{
    li {
      display: inline-block;
    }
    .bg-mood_afraid {
      width: 176px; height: 176px;
      background: url('../assets/img/css_sprites.png') -10px -10px;
    }
    .bg-mood_angry {
      width: 176px;
      height: 176px;
      background: url('../assets/img/css_sprites.png') -206px -10px;
    }
    .bg-mood_calm {
      width: 176px; height: 176px;
      background: url('../assets/img/css_sprites.png') -10px -206px;
    }
    .bg-mood_expect {
      width: 176px; height: 176px;
      background: url('../assets/img/css_sprites.png') -206px -206px;
    }
    .bg-mood_happy {
      width: 176px; height: 176px;
      background: url('../assets/img/css_sprites.png') -402px -10px;
    }
    .bg-mood_miss {
      width: 176px; height: 176px;
      background: url('../assets/img/css_sprites.png') -402px -206px;
    }
    .bg-mood_nervous {
      width: 176px; height: 176px;
      background: url('../assets/img/css_sprites.png') -10px -402px;
    }
    .bg-mood_sad {
      width: 176px; height: 176px;
      background: url('../assets/img/css_sprites.png') -206px -402px;
    }
    .bg-mood_surprised {
      width: 176px; height: 176px;
      background: url('../assets/img/css_sprites.png') -402px -402px;
    }
  }
</style>

可以看到整个就引用了一张背景图片,减少了网络请求,但一定程度上增加了客户端内存消耗,通过background-position来设置图片的位置,达到显示想要的部分背景图的目的。

雪碧图使用场景

主用在网站的icon上面,很多网站都有很多小图标,这些小图标如果都是单独请求网络,务必会消耗很多玩网络资源(每次请求都会有一个连接与断开的时间消耗),但是比较大的图片,就不建议用雪碧图,因为图片太大,一次请求获取的数据量大,拿到这个大图需要的时间就长,降低了网页的整体体验。


线上体验地址:
地址

所有的源码都可以在我的仓库地址:
地址

学习如逆水行舟,不进则退,前端技术飞速发展,如果每天不坚持学习,就会跟不上,我会陪着大家,每天坚持推送博文,跟大家一同进步,希望大家能关注我,第一时间收到最新文章。

公众号前端每日面试:


公众号

相关文章

  • 你知道雪碧图吗?有哪些优缺点?

    这道题实际上考的是前端性能优化的一个点。雪碧图的英文是CSS Sprites。其目的是将多张比较小的图片,合并到一...

  • 2019-02-01

    框架: 1,你知道的搜索网站有哪些? 2,你真的会用搜索网站吗? 2.1搜所网站的优缺点 2.2 每个网站的...

  • 速读,其实很简单!

    你知道自己为什么要读书吗?你知道什么是速读吗?你知道自己有哪些阅读的坏习惯吗?你知道有哪些方法可以让你快速阅读,不...

  • vue-cli3使用svg的最佳实践

    目录 iconfont的三种使用方式及其优缺点 封装svg组件 svg雪碧图 自动导入svg图标 封装svg组件 ...

  • 最强“宁波大全”来了!以后再也不用担心被问宁波有什么了!

    -经宁波头条(nbtt818)授权转载- 你有多了解宁波? 你知道宁波有哪些名山吗? 你知道宁波有哪些古村镇吗? ...

  • 前端—雪碧图

    使用雪碧图的优点有以下几点: 雪碧图的制作与使用方法:

  • 任务9- CSS常见技巧

    1、CSS Sprite(雪碧图|精灵图)指什么? 有什么作用 简介CSS Sprites(雪碧图|精灵图)是一种...

  • 饥人谷-任务9-2

    一、CSS Sprite(雪碧图|精灵图)指什么? 有什么作用 css雪碧图又叫css精灵或css sprite,...

  • CSS常见技巧

    1.CSS Sprite(雪碧图|精灵图)指什么? 有什么作用 CSS Sprite(雪碧图|精灵图)指该方法是将...

  • CSS常见样式

    CSS Sprite(雪碧图)指什么? 有什么作用 CSS雪碧图 即CSS Sprite,也有人叫它CSS精灵图,...

网友评论

    本文标题:你知道雪碧图吗?有哪些优缺点?

    本文链接:https://www.haomeiwen.com/subject/mapsnhtx.html