【常见CSS扫盲雪碧图】从源码细看CSS雪碧图原理及实现,千字详解【附源码demo下载】

news2024/11/27 22:25:45

写在前面】其实估计很多人都听过雪碧图,或者是CSS-Sprite,在很多门户网站就会经常有用到的,之所有引出雪碧图这个概念还得从前端加载多个图片时候页面闪了一下说起,这样给人的视觉效果体验很差,也就借此机会和大家说说CSS雪碧图的故事。
涉及知识点:CSS雪碧图,background-position属性,页面加载优化,如何防止页面闪一下加载。
【皇榜】支持博主的可以一睹皇榜哟,等您上榜!

目录结构

  • 页面效果
  • 1、深入理解雪碧图
    • 1.1 雪碧图是啥?
    • 1.2 雪碧图的实现原理
    • 1.3 雪碧图的特点
  • 2、雪碧图实例应用
    • 2.1 实现步骤:
    • 2.2 实现代码
    • 2.3 运行效果
  • 3、源码demo下载
    • 百度网盘
    • 123云盘(下载不限速)
    • 片尾彩蛋

页面效果

在这里插入图片描述

版权声明:此文属CSDN-《拄杖盲学轻声码》博主原创,了解更多可以搜索哟

1、深入理解雪碧图

1.1 雪碧图是啥?

这里说的css雪碧图并不是我们喝点雪碧哈,其实简单来说就是我们把多张小图标放在一张图片上,然后通过设置图片的背景位置来实现单个图的展示;
如下图所示的百度页面:
在这里插入图片描述

其中加载的资源里面我们就可以看到有这么一个png图,里面包含四个小图标,其实这个就是我们说的雪碧图。

1.2 雪碧图的实现原理

具体实现我们还是可以通过百度首页为例,首先我们针对这个里面的拍照图标去定位看一下,不难发现,其设置的css属性包括了background,background-position,宽高,外边距,及相对偏移。
在这里插入图片描述

尤其是background-position 这个属性设置了0,-51。其中0是表示左偏移,-51表示的相对偏移量,文字说不好理解,我们就手绘一个坐标给大家看看就一目了然了:
在这里插入图片描述
从四象限里面我们一下就能看出怎么设置background-position图片定位了,为了证明我们的理解正确性,我把原来的-51改成-26试试看就很清晰了,如下所示。
在这里插入图片描述

从这里大家就能清楚的了解如何设置雪碧图的background-position属性图片偏移值了。

1.3 雪碧图的特点

A.减少服务器资源请求次数,加快访问速度,防止页面加载闪图现象
B.因为大图资源大,初次加载速度会慢些
C.普遍适用于图标的加载,不建议用于大图的拼接加载。

2、雪碧图实例应用

其实在1.2章节我们就很详细的说明了他的实现原理,那么现在就跟随博主的步伐,我们去实现一个小demo吧。

2.1 实现步骤:

A、整理大的png图片(可PS)
B、精确计算各个图片的偏移量
C、创建dom节点,设置背景图
D、设置大小及偏移量

2.2 实现代码

其实核心就是创建一个dom,然后设置宽高,最后再设置背景色和偏移值。

Html搭建

<div class="showicons allshow">
    <h2>展示区(雪碧图实现)</h2>
    <hr>
    <div class="showArea"></div>
</div>

Css设置

.showArea {
   background: url(img/icons.png) no-repeat;
    width: 40px;
    height: 40px;
    position: absolute;
    margin-top: 20px;
    background-position: 0 -238px;
}

.allshow {
    position: relative;
}

2.3 运行效果

如下所示雪碧图效果
在这里插入图片描述

3、源码demo下载

百度网盘

链接:https://pan.baidu.com/s/1XBkmnkK95r9tij3AVo4Nrg
提取码:hdd6

123云盘(下载不限速)

链接:https://www.123pan.com/s/ZxkUVv-qWJ4.html
提取码:hdd6

片尾彩蛋

倾心打造佳作,愿解君之惑,如若有幸,盼君上榜助阵,特此敬谢!
皇榜入口点击此处

若有疑惑可以留言讨论哈,期待和您一起进步!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux查看串行端口

查看串口驱动 cat /proc/tty/driver/serial查看串口设备 dmesg | grep ttyS*[rootlocalhost driver]# cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 CTS|DSR|CD 2:…

攻防世界-inget(简单的SQL注入、万能密码)

目录 1、手工注入&#xff08;万能密码原理&#xff09; 2、sqlmap实现 3、常用参数 1、手工注入&#xff08;万能密码原理&#xff09; 打开链接&#xff0c;提示输入id并尝试绕过 尝试一下万能密码&#xff0c;使用逻辑语句使结果返回 构造payload /?id or 我们这里是…

Java虚拟机内存区域

Java虚拟机所管理的内存将会包括以下几个运行时数据区域 程序计数器 是一块较小的内存空间&#xff0c;可以看作当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要通过更改这个计数器的值来改变下一条需要执行的字节码。 由于各个线…

DAY 35 sed文本编辑器

文本三剑客&#xff1a;都是按行读取后处理。 grep 过滤行内容 awk 过滤字段 sed 过滤行内容&#xff1b;修改行内容 sed编辑器 sed是一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流 sed编辑器可以根据命令来处理数据流中的…

Shell编程(二)

上一章&#xff1a; Shell编程_做测试的喵酱的博客-CSDN博客 七、ping shell脚本&#xff0c;是一个面向过程的编程语言&#xff0c;没有类和对象的概念。用的最多的就是函数。 查看当前服务&#xff0c;是否能ping通baidu ping www.baidu.com [rootecs-39233 dev]# ping ww…

眺望2023:房企“三大护法”如何助力穿越周期?

2022 年的地产行业尤为艰难&#xff0c;土地和商品房成交量明显下滑&#xff0c;许多房企的业绩都呈现收缩态势。 不过&#xff0c;今年以来房地产市场似乎出现企稳信号。国家统计局数据显示&#xff0c;今年1~2月全国商品房销售面积和销售额的下跌幅度明显收窄&#xff0c;住…

18-java单列集合

java单列集合1.集合体系结构1.1 单列集合1.2 双列集合2. 单列集合体系结构3.Collection集合顶层接口3.1 Collection的遍历方法3.1.1 迭代器遍历3.1.2 增强for遍历3.1.3 Lambda表达式4. List单列集合4.1 List4.1.1 List集合特点4.1.2 List集合的特有方法4.1.3 List集合遍历方法4…

计算机组成原理实验三-----系统总线和具有基本输入输出功能的总线接口实验

总线是计算机中连接各个功能部件的纽带&#xff0c;是计算机各部件之间进行信息传输的公共通路。 总线不只是一组简单的信号传输线&#xff0c;它还是一组协议。他有两大特征 分时: 同一总线在同一时刻&#xff0c;只能有一个部件占领总线发送信息&#xff0c;其他部件要发送信…

游戏基础—Android平台进程模块信息获取

记得学习编程时的第一个helloworld程序&#xff1a; #include<stdio.h> Int main(int argc, char **argv) { printf(“Hello World”); return 0; } 打印” Hello World”&#xff0c;使用的是printf函数。但是&#xff0c;我们并没有去实现printf函数的功能&#xff0…

javascrip语法

JavaScript 语法涉及到很多方面&#xff0c;以下是常见的详细语法&#xff1a; 1. 变量 变量用于存放值&#xff0c;关键字 var 可以定义变量。 // javascript var x 5; // 定义变量 x&#xff0c;并赋值为 52. 数据类型 JavaScript 中有多种数据类型&#xff0c;包括&…

iOS 紧急通知

一般通知 关于通知的各种配置和开发&#xff0c;可以参考推送通知教程&#xff1a;入门 – Kodeco&#xff0c;具有详细步骤。 紧急通知表现 紧急通知不受免打扰模式和静音模式约束。当紧急通知到达时&#xff0c;会有短暂提示音量和抖动&#xff08;约2s&#xff09;。未锁…

一文速学数模-K-means聚类算法实战:信用卡用户画像聚类分析

目录 前言 一、用户画像概述 1.用户画像 2.为何用聚类算法作用户画像 二、数据质量校验 1.数据背景 2.数据说明 三、数据预处理 1.数据空缺值检验 2.数据归一化 四、K-means聚类 step1:选取K值 手肘法 step2:计算初始化K点 step3:迭代计算重新划分 五.画像分析 …

【LeetCode:221. 最大正方形 | 暴力递归=>记忆化搜索=>动态规划 | 二维dp】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Flutter - 实现防抖和节流

demo 地址: https://github.com/iotjin/jh_flutter_demo 代码不定时更新&#xff0c;请前往github查看最新代码 什么是防抖和节流&#xff1f; 函数节流&#xff08;throttle&#xff09;与 函数防抖&#xff08;debounce&#xff09;都是为了限制函数的执行频次&#xff0c;以…

AgentGPT,免费易用的 Auto-GPT 平替

你问 ChatGPT 答&#xff0c;属于单线问答式交互。但如果你问Auto-GPT&#xff0c;他会分解成N个任务&#xff0c;并且在遇到任务无法完成后&#xff0c;会尝试其它的方式来完成任务&#xff0c;很像老板交待你一个任务&#xff0c;中间的过程他不过问&#xff0c;遇到问题你自…

性能测评:腾讯云轻量服务器4核8G12M带宽流量CPU主频型号

腾讯云轻量4核8G12M应用服务器带宽&#xff0c;12M公网带宽下载速度峰值可达1536KB/秒&#xff0c;折合1.5M/s&#xff0c;每月2000GB月流量&#xff0c;折合每天66GB&#xff0c;系统盘为180GB SSD盘&#xff0c;地域节点可选上海、广州或北京&#xff0c;4核8G服务器网来详细…

【LeetCode】917. 仅仅反转字母、387. 字符串中的第一个唯一字符

作者&#xff1a;小卢 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 917. 仅仅反转字母 387. 字符串中的第一个唯一字符 917. 仅仅反转字母 917. 仅仅反转字母…

光栅和矢量图像处理SDK:Graphics Mill 11.7Crack

Graphics Mill 是适用于 .NET 和 ASP.NET 开发人员的最强大的成像工具集。它允许用户轻松地向 .NET 应用程序添加复杂的光栅和矢量图像处理功能。 光栅图形 加载和保存 JPEG、PNG PSD 和其他 8 种图像格式 调整大小、裁剪、自动修复、色度键和 30 多种其他图像处理 使用任何维度…

大电流的走线和过孔

工程师在设计的时候&#xff0c;很容易忽略走线宽度的问题&#xff0c;因为在数字设计时&#xff0c;走线宽度不在 考虑范围里面。通常情况下&#xff0c;都会尝试用最小的线宽去设计走线&#xff0c;这时&#xff0c;在大电流时&#xff0c;将会导致很严重的问题。下面的公式用…

Vue3文字滚动(TextScroll)

可自定义设置以下属性&#xff1a; 滚动文字数组&#xff08;sliderText&#xff09;&#xff0c;类型&#xff1a;Array<{title: string, link?: string}>&#xff0c;必传&#xff0c;默认[] 滚动区域宽度&#xff08;width&#xff09;&#xff0c;类型&#xff1a;…