当前位置: 首页 > news >正文

base64图片的优缺点(雪碧图)

  1. 第二个img标签是有转成base64图片的

在这里插入图片描述

  1. 结果:
    在这里插入图片描述

===>图片转成base64图片的地址为:

在这里插入图片描述

===>然后把需要转换的图片上传,得到转换后的base64图片的字符串,然后复制粘贴到img标签的src属性上即可

在这里插入图片描述

优点:

1、减少http请求次数
2、采用base64的图片随着页面一起下载,因此不会存在跨域请求的问题
3、没有图片更新要上传图片,因此不会造成清理图片缓存的问题

缺点:

1、增加css文件的大小,比http请求大30%左右
2、浏览器兼容性,支持ie10及以上
3、解析css的时间增长

什么时候用base64呢?

如果图片足够小且因为用处的特殊性无法被制作成雪碧图(CssSprites),在整个网站的复用性很高且基本不会被更新。

可以通过控制图片的大小来定义是否是大图片或小图片,如:超过 10MB 为大图片,没超过则为小图片,这个时候可以通过 limit 来控制了。
实际项目开发中,在webpack中配置,如下: 在这里插入图片描述

webpack相关配置,请跳转至大神的webpack中的loader详解

CssSprites与base64编码

使用CssSprites合并为一张大图:

  • 页面具有多种风格,需要换肤功能,可使用CssSprites
  • 网站已经趋于完美,不会再三天两头的改动(例如button大小、颜色等)
  • 使用时无需重复图形内容
  • 没有 base64 编码成本,降低图片更新的维护难度。(但注意 Sprites 同时修改 css 和图片某些时候可能造成负担)
  • 不会增加 CSS 文件体积

使用base64直接把图片编码成字符串写入CSS文件:

  • 无额外请求
  • 对于极小或者极简单图片
  • 可像单独图片一样使用,比如背景图片重复使用等
  • 没有跨域问题,无需考虑缓存、文件头或者cookies问题

相关文章:

  • 数字IC面试总结,看看你掌握几个?
  • 助力Java开发者成功,微软是认真的
  • java健身房管理系统设计计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  • (超详细)语音信号处理之特征提取
  • Databend 特性系列(1)|Databend 数据生命周期
  • 快速排序的三种单趟排序思想的实现与优化 - 递归与非递归
  • MATLAB系统辨识工具箱-System Identification Toolbox
  • Android 10 应用层如何操作设备节点/sys/devices
  • 使用 TensorFlow.js 在浏览器中进行自定义对象检测
  • CopyOnWriteArrayList是如何保证线程安全的?
  • Synopsys新思科技2023“向新力”秋季校园招聘内推
  • 硬盘分区误删数据如何恢复呢?
  • 基于Java毕业设计智能超市导购系统源码+系统+mysql+lw文档+部署软件
  • python数据分析—删除value=0的行
  • 计算机毕业设计Java物流信息管理系统(源码+系统+mysql数据库+Lw文档)
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 3.7、@ResponseBody 和 @RestController
  • 77. Combinations
  • android图片蒙层
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • github指令
  • Hibernate最全面试题
  • isset在php5.6-和php7.0+的一些差异
  • Iterator 和 for...of 循环
  • Java编程基础24——递归练习
  • js如何打印object对象
  • Laravel Telescope:优雅的应用调试工具
  • Nacos系列:Nacos的Java SDK使用
  • SAP云平台里Global Account和Sub Account的关系
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SQLServer之创建数据库快照
  • 编写符合Python风格的对象
  • 关于for循环的简单归纳
  • 如何实现 font-size 的响应式
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​​​​​​​​​​​​​​Γ函数
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (175)FPGA门控时钟技术
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (独孤九剑)--文件系统
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (学习日记)2024.01.19
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一)基于IDEA的JAVA基础10
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转载)Linux 多线程条件变量同步
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • ??myeclipse+tomcat