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

图片优化: CssSprites与Base64编码

文章目录

  • 1 css sprites
    • 1.1 CSS Sprites是什么
    • 1.2 为什么需要css sprites
    • 1.3 优势
    • 1.4 使用原理
    • 1.5 DEMO
  • 2 图片Base64编码

1 css sprites

1.1 CSS Sprites是什么

CSS Sprites是一种网页图片应用处理方式。 又被解释为:

  • CSS精灵
  • CSS图像拼合
  • CSS贴图定位
  • CSS图片精灵
  • CSS雪碧图
  • 图片合成技术

1.2 为什么需要css sprites

CSS Sprites 并不是一门新的技术了,目前他发展的已经比较成熟,阿里巴巴、百度、谷歌 等各公司的网页中到处都可以发现CSS Sprites 的影子。

他是网页里常见的一种图片应用处理方式,他允许你将一个页面里所涉及到的所有的零星的小图片都整合到一张大图中去,这样一来,当访问这个页面时,所加载的图片就不会像以前那样一张一张的慢慢显示出来了。

对于当前的网络所流行的速度来说,不超出200kb的单张图片所需要的加载时间基本是差不多的,节省加载速度的关键不是降低重量,而是减少个数,就因为计算机都是按照byte计算。页面每显示一张图片都会向服务器发送一次请求。所以,图片越多,所请求的次数就越多。

1.3 优势

通过整合图片,减少对服务器的请求数量,减少图片的体积从而减轻服务 器的负担,提高网页的加载速度

----------使用前:
在这里插入图片描述

----------使用后:

在这里插入图片描述

1.4 使用原理

大的合并图中包含各个小图
截取大图一部分显示,而这部分就是一个小图标,如下图

在这里插入图片描述

如显示上面 QQ 小图标, 则在合并图中X轴向右60像素, Y轴0像素, 截取宽高均为48像素;则 这个小图标就出来了:

在这里插入图片描述
关键样式:

background-image: url("sprite.png");
background-position: -60px 0px;
width:48px;
height:48px;

1.5 DEMO

在网上找了一张都是图标的图片,如下图:

在这里插入图片描述
现在我们想要拿到左上角第一个图标,第一步怎么做呢?
这时要发挥我们切图仔的能力了

打开photoshop,打开该图片
在这里插入图片描述
使用裁剪工具,或按住 C 键,选中图标

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到
x轴150 y轴80 长宽130 就可以截出该图标了
(没有UI人员那么准确,凑合用这个参数吧)

代码如下:

<div class="demo2"></div>.demo2 {/* 因为是demo 所以使用本地路径测试 */background-image: url('../../assets/xuebiPhoto.jpg');background-position: -150px -80px;width: 130px;height: 130px;}

在页面效果:
在这里插入图片描述

2 图片Base64编码

https://www.cnblogs.com/coco1s/p/4375774.html

相关文章:

图片优化: CssSprites与Base64编码

文章目录 1 css sprites1.1 CSS Sprites是什么1.2 为什么需要css sprites1.3 优势1.4 使用原理1.5 DEMO 2 图片Base64编码 1 css sprites 1.1 CSS Sprites是什么 CSS Sprites是一种网页图片应用处理方式。 又被解释为&#xff1a; CSS精灵CSS图像拼合CSS贴图定位CSS图片精灵…...

JavaScript中的Map、WeakMap和Object的区别

Map Map是一种新的数据结构&#xff0c;它允许使用任何数据类型&#xff08;包括对象和基本数据类型&#xff09;作为键。 Map的一些特性包括&#xff1a; 保持键的插入顺序&#xff1a;当遍历Map时&#xff0c;键值对会按照插入顺序返回。键可以是任意类型&#xff1a;与Obj…...

华为OD机试之打印机队列(Java源码)

打印机队列 题目描述 有5台打印机打印文件&#xff0c;每台打印机有自己的待打印队列。 因为打印的文件内容有轻重缓急之分&#xff0c;所以队列中的文件有1~10不同的代先级&#xff0c;其中 数字越大优先级越高 打印机会从自己的待打印队列中选择优先级最高的文件来打印。 如…...

分享一个国内免费的ChatGPT网站,手机电脑通用,免费无限制,支持AI绘画

背景 ChatGPT作为一种基于人工智能技术的自然语言处理工具&#xff0c;近期的热度直接沸腾&#x1f30b;。 作为一个AI爱好者&#xff0c;翻遍了各大基于ChatGPT的网站&#xff0c;终于找到一个免费&#xff01;免登陆&#xff01;手机电脑通用&#xff01;国内可直接对话的C…...

【面向对象编程1】——类和对象——如桃花来

目录索引 面向过程和面向对象的区别&#xff1a;面向过程&#xff1a;面向对象&#xff1a;总结&#xff1a; 类和对象&#xff1a;定义类&#xff1a;语法&#xff1a; 创建对象&#xff1a;实例演示&#xff1a; 魔法方法&#xff1a;__init __方法&#xff1a;__ del __方法…...

chat聊天系统消息消费时遇到的问题及优化思路(二)

1、前言 考虑下面几个条件下如何提升kafka的消费速度 消息要求严格有序&#xff0c;如chat聊天消息业务处理速度慢&#xff0c;如处理一条数据需要100ms分片不合理&#xff0c;如有的分区很闲&#xff0c;有的分区消息数量积压 2、解决方案 1、顺序问题 关于消息消费时存在…...

js正则中的match()

在前端开发中&#xff0c;正则表达式是一大利器。所以我们这次就来讨论下match()方法。 match本身是JavaScript语言中字符串对象的一个方法&#xff0c;该方法的签名是 match([string] | [RegExp]) 它的参数既可以是一个字符串&#xff0c;也可以是一个正则表达式。该方法绝…...

Apache 配置和应用

目录 构建虚拟 Web 主机 Options指令解释 Options指令常用选项 AllowOverride指令解释&#xff1a; 地址限制策略&#xff1a; httpd服务支持的虚拟主机类型包括以下三种: 基于域名的虚拟主机 1&#xff0e;为虚拟主机提供域名解析 2.为虚拟主机准备网页文档 3.添加虚拟…...

实现PyTorch/ONNX自定义节点操作的TensorRT部署

参考一 下面是基本步骤&#xff1a; 加载训练好的bev transformer网络权重参数&#xff1a; import torch from model import Modelmodel Model() model.load_state_dict(torch.load("path/to/weights"))定义新的自定义操作&#xff1a; import torch from torc…...

Shamir 秘密共享、GMW和BGW方案

一、Shamir秘密共享 Shamir秘密共享方案是一种将秘密拆分成多份并分配给多个参与者保存&#xff0c;只有在满足特定条件下才能恢复原始秘密的密码学方案。它具有良好的容错性、加法同态性和无条件安全性等特点。 具体地&#xff0c;Shamir秘密共享方案可以概括为以下步骤&…...

Day56【动态规划】583.两个字符串的删除操作、72.编辑距离

583.两个字符串的删除操作 力扣题目链接/文章讲解 视频讲解 1、确定 dp 数组下标及值含义 dp[i][j]&#xff1a;以下标 i 为结尾的字符串 word1&#xff0c;和以下标 j 为结尾的字符串 word2&#xff0c;想要达到相等&#xff0c;所需要删除元素的最少次数为 dp[i][j] 2、…...

Arnold图像置乱的MATLAB实现

这件事情的起因是这样的&#xff0c;我需要研究一下各种图像置乱的算法。然后在知乎上找到了一篇关于Arnold变化的文章&#xff0c;但是呢&#xff0c;这个人实际上是卖资料&#xff0c;代做大作业的。详细的代码根部不给你&#xff0c;则给我气坏了&#xff0c;必须要手动实现…...

ASP.NET Core

1. 入口文件 一个应用程序总有一个入口文件&#xff0c;是应用启动代码开始执行的地方&#xff0c;这里往往也会涉及到应用的各种配置。当我们接触到一个新框架的时候&#xff0c;可以从入口文件入手&#xff0c;了解入口文件&#xff0c;能够帮助我们更好地理解应用的相关配置…...

javascript基础二十二:举例说明你对尾递归的理解,有哪些应用场景

一、递归 递归&#xff08;英语&#xff1a;Recursion&#xff09; 在数学与计算机科学中&#xff0c;是指在函数的定义中使用函数自身的方法 在函数内部&#xff0c;可以调用其他函数。如果一个函数在内部调用自身本身&#xff0c;这个函数就是递归函数 其核心思想是把一个大型…...

hive中如何计算字符串中表达式

比如 select 1(2-3)(-4.1-3.1)-(4-3)-(-3.34.3)-1 col ,1(2-3)(-4.1-3.1)-(4-3)-(-3.34.3)-1 result \ 现在的需求式 给你一个字符串如上述col 你要算出result。 前提式 只有和-的运算&#xff0c;而且只有嵌套一次 -(4-3)没有 -(-4(3-(31)))嵌套多次。 第一步我们需要将运…...

如何将maven项目改为springboot项目?

将 Maven 项目转换为 Spring Boot 项目需要进行以下步骤&#xff1a; 1. 在 Maven 项目中添加 Spring Boot 的依赖。可以通过在 pom.xml 文件中添加以下依赖来实现&#xff1a; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>…...

Java与查找算法(5):哈希查找

一、哈希查找 哈希查找&#xff0c;也称为散列查找&#xff0c;是一种基于哈希表的查找算法。哈希表是一种数据结构&#xff0c;它将键&#xff08;key&#xff09;映射到值&#xff08;value&#xff09;&#xff0c;使得查找某个键对应的值的时间复杂度为O(1)。哈希查找的过…...

Vercel部署个人博客

vercel 部署静态资源网站极其方便简单&#xff0c;并且有可观的访问速度&#xff0c;最主要的是免费部署。 如果你还没有尝试的话&#xff0c;强烈建议去使用一下。 演示博客演示http://202271.xyz/?vercel vercel 介绍 注册账号 进入Vercel官网https://vercel.com&#x…...

【论文阅读】An Object SLAM Framework for Association, Mapping, and High-Level Tasks

一、系统概述 这篇文章是一个十分完整的物体级SLAM框架&#xff0c;偏重于建图及高层应用&#xff0c;在前端的部分使用了ORBSLAM作为基础框架&#xff0c;用于提供点云以及相机的位姿&#xff0c;需要注意的是&#xff0c;这篇文章使用的是相机&#xff0c;虽然用的是点云这个…...

《metasploit渗透测试魔鬼训练营》学习笔记第六章--客户端渗透

四.客户端攻击 客户端攻击与服务端攻击有个显著不同的标识&#xff0c;就是攻击者向用户主机发送的恶意数据不会直接导致用户系统中的服务进程溢出&#xff0c;而是需要结合一些社会工程学技巧&#xff0c;诱使客户端用户去访问这些恶意数据&#xff0c;间接发生攻击。 4.1客户…...

怎么跨领域写文献综述?

刚踏入陌生交叉领域的科研人&#xff0c;最怕的就是面对动辄数十万篇的文献——翻了几十篇却找不到奠基性成果&#xff0c;读了一堆边缘文献导致研究方向跑偏&#xff0c;几周时间耗进去却连领域脉络都没理清&#xff0c;这种低效焦虑几乎每个科研人都经历过。传统方法里&#…...

抖音批量下载工具:免费无水印下载完整指南

抖音批量下载工具&#xff1a;免费无水印下载完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量…...

C#字节序反转:从原理到工业级实现

1. 字节序反转不是“字节倒序”&#xff0c;而是数据语义的精准翻转很多人第一次看到“字节序反转”这个词&#xff0c;下意识就去写Array.Reverse(bytes)——结果一测发现&#xff1a;整数读出来完全不对。我去年在做工业PLC通信协议解析时就栽过这个跟头&#xff1a;设备返回…...

揭秘Windows和Office智能激活:KMS_VL_ALL_AIO技术深度解析与实战指南

揭秘Windows和Office智能激活&#xff1a;KMS_VL_ALL_AIO技术深度解析与实战指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office的激活问题烦恼吗&#xff1f;KMS_VL_ALL…...

如何在10分钟内搭建个人游戏串流服务器:Sunshine跨平台游戏流媒体完全指南

如何在10分钟内搭建个人游戏串流服务器&#xff1a;Sunshine跨平台游戏流媒体完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否梦想过在任何设备上畅玩PC游戏&#x…...

C++中的函数知识点大全

函数的定义不能嵌套但调用可以嵌套在函数调用时&#xff0c;如某一默认参数要指明一个特定值&#xff0c;则有其之前所有参数都必须赋值赋默认实参时 一旦某个形参被赋予了默认值&#xff0c;它后面的所有形参都必须有默认值&#xff0c;因为设置默认参数的顺序是自右向左&…...

uView 2.0插件开发指南:如何扩展自定义组件与工具函数

uView 2.0插件开发指南&#xff1a;如何扩展自定义组件与工具函数 【免费下载链接】uView2.0 uView UI&#xff0c;是全面兼容nvue的uni-app生态框架&#xff0c;全面的组件和便捷的工具会让您信手拈来&#xff0c;如鱼得水 项目地址: https://gitcode.com/gh_mirrors/uv/uVi…...

免费开源鼠标连点器:5分钟上手跨平台自动化点击完整指南

免费开源鼠标连点器&#xff1a;5分钟上手跨平台自动化点击完整指南 【免费下载链接】MouseClick &#x1f5b1;️ MouseClick &#x1f5b1;️ 是一款功能强大的鼠标连点器和管理工具&#xff0c;采用 QT Widget 开发 &#xff0c;具备跨平台兼容性 。软件界面美观 &#xff0…...

深度解析Unity游戏实时翻译插件:XUnity.AutoTranslator的5大实战应用场景与架构设计

深度解析Unity游戏实时翻译插件&#xff1a;XUnity.AutoTranslator的5大实战应用场景与架构设计 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator是一款革命性的Unity游戏实时翻译插…...

鸣潮自动化助手:5步轻松实现后台智能战斗与资源收集

鸣潮自动化助手&#xff1a;5步轻松实现后台智能战斗与资源收集 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 还在为每天重复刷声…...