博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
精灵图(雪碧图)和base64如何选择
阅读量:4624 次
发布时间:2019-06-09

本文共 1565 字,大约阅读时间需要 5 分钟。

 

Css Sprites:

介绍:

Css Sprites(雪碧图或css精灵),是网页图片处理的一种方式,它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。

原理:

将许多的小图片整合到一张大图片中,利用css中的background-image属性,background-position属性定位某个图片位置,来达到在大图片中引用某个部位的小图片的效果。

优点:

  • 减少网页的http请求,提升网页加载速度。
  • 合并多张小图片成大图,能减少字节总数(大图大小<=多张小图大小).

缺点:

  • 前期需要处理图片将小图合并,多些许工程量。
  • 对于需要经常改变的图片维护起来麻烦。

应用例子:

  • 生成雪碧图:我这里使用了网页雪碧图制作专家,当然还有很多其他的工具
  • 合成的图片如图所示:
  • html代码:
  •     
    css Sprites

    css代码:

  • .container {    overflow: hidden;    width: 50px;    height: 200px;    background-color: #faa755;}.icon {    margin: 0 auto;    margin-top: 20px;    width: 40px;    height: 30px;    background-image: url(icon.png);    list-style-type: none;}.icon-issue {    background-position: 0 0;}.icon-upload {    background-position: 0 -50px;}.icon-passage {    background-position: 0 -100px;}

    适用场景:

    • 对于一些不需要多变动的小图片,表情,标志等等都可以使用。
    • 一般都是应用于小图片,太大的图片不利于合并,且定位麻烦,一次的加载时间长,导致全部图片出现时间延迟,效果不友好。


      base64:

      介绍:

      base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,要求把每三个8Bit的字节转换为四个6Bit的字节,Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。

      通俗点讲:将资源原本二进制形式转成以64个字符基本单位,所组成的一串字符串。

      比如一张图片转成base64编码后就像这样,图片直接以base64形式嵌入文件中(很长没截完)

    • 生成base64编码:

      图片生成base64可以用一些工具,如在线工具,但在项目中这样一个图片这样生成是挺繁琐。

      特别说下,webpack中的url-loader可以完成这个工作,可以对限制大小的图片进行base64的转换,非常方便。

      优点:

      • base64的图片会随着html或者css一起下载到浏览器,减少了请求.
      • 可避免跨域问题

      缺点:

      • 老东西(低版本)的IE浏览器不兼容。
      • 体积会比原来的图片大一点。
      • css中过多使用base64图片会使得css过大,不利于css的加载。

      适用场景:

          • 应用于小的图片几k的,太大的图片会转换后的大小太大,得不偿失。
          • 用于一些css sprites不利处理的小图片,如一些可以通过background-repeat平铺来做成背景的图片

转载于:https://www.cnblogs.com/zhouyingying/p/11413635.html

你可能感兴趣的文章
kindeditor 代码高亮设置
查看>>
图的邻接表存储
查看>>
2018 leetcode
查看>>
PHP中获取当前页面的完整URL
查看>>
Chapter 4 Syntax Analysis
查看>>
vi/vim使用
查看>>
讨论Spring整合Mybatis时一级缓存失效得问题
查看>>
Maven私服配置Setting和Pom文件
查看>>
Xcode10 library not found for -lstdc++ 找不到问题
查看>>
Mysql 8.0.13如何重置密码
查看>>
发布功能完成
查看>>
excel 合并单元格
查看>>
How to Create Modifiers Using the API QP_MODIFIERS_PUB.PROCESS_MODIFIERS
查看>>
待飞笔记(第一天 )
查看>>
解惑好文:移动端H5页面高清多屏适配方案
查看>>
traefik添加多证书
查看>>
忽略UserInterfaceState.xcuserstate
查看>>
ReactNative--Flexbox布局
查看>>
java实现读取文件大全
查看>>
[Cordova] 无法显示Alert视窗
查看>>