CSS Sprite

CSS Sprites叫 CSS精灵或者雪碧图,是一种网页图片应用处理方式。

CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中。
再利用CSS的"background-image","background-repeat", "background-position"的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。

为什么建议使用CSS Sprite

在网页访问中,客户端每需要访问一张图片都会向服务器发送请求,所以,访问的图片数量越多,请求次数也就越多,造成延迟的可能性也就越大。

所以,CSS Sprites技术加速的关键,并不是降低质量,而是减少个数,当然随之而来的增加内存消耗,CSS Sprites图片繁琐的合成等缺点在网站心梗的提升前,也就不足为道了。

CSS Sprites的优点:

  • 减少图片的字节
  • 减少了网页的http请求,从而大大的提高了页面的性能
  • 减少命名难的问题

CSS Sprites的缺点:

  • 在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景。
  • 在宽屏,高分辨率的屏幕下的自适应页面,图片如果不够宽,很容易出现背景断裂。
  • CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这样合并的图片,无需改的地方最好不要动,这样避免改动更多的CSS,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动CSS。

再说说background-position

只有真正的了解background-position的特性才能在需要的场景更好的运用它。

background-position属性设置背景图像的起始位置。

这个属性设置背景原图像(由background-image定义)的位置,背景图像如果要重复,将从这一点开始。

提示:

background-position属性设置背景原图像(由background-image定义)的位置,意味着使用这个属性的前提是必须设置背景原图像background-image。

了解了background-position属性的用法,使用雪碧图之前,我们需要知道雪碧图中各个图标的位置。

从上面的图片不难看出雪碧图各个小图标(icon)在整张雪碧图的起始位置,例如第一个图标(裙子)在雪碧图的起始位置为x:0,y:0,第二个图标(鞋子)在雪碧图的起始位置为x:0, y:50px,第三个图标(足球)在雪碧图的起始位置为x:0, y:100px,依次类推可以得出各个图片相对于雪碧图的起始位置。

以上面的雪碧图为例(实际雪碧图中各个小图片的起始位置和上面的展示图不同)用一个Demo来阐述它的使用方法。

HTML

<div class="box"><span class="icon1"></span><span class="icon2"></span><span class="icon3"></span><span class="icon4"></span>
</div>

CSS

<style>.box {width: 600px;height: 300px;border: 3px solid #ccc;background-color: #8064A2;}span {display: inline-block;width: 25px;height: 25px;border: 3px solid #ccc;background-image: url(css/img/sidebar.png);background-repeat: no-repeat;margin: 5px;}.icon1 {background-position: 0 0;}.icon2 {backround-position: -40px 0;}.icon3 {background-position:0 -25px;}.icon4 {background-position: -40px -25px;}
</style>

效果图:

合成CSS Sprite的工具

利用雪碧图显示icon的小demo https://evenyao.github.io/css-sprite-demo/

制作CSS Sprite工具详解 http://www.cnblogs.com/wang4517/p/4476758.html

CSS Sprite “精灵图“相关推荐

  1. 精灵图 html为什么会变大,CSS Sprite精灵图如何缩放大小

    在 移动端项目当中,如果要使用精灵图的话,因为我做了px自动转换vw单位,所以在使用的时候,position位置正常写单位是px,但是转化成vw后就找不到对应的图片了 "postcss-px ...

  2. CSS Sprite精灵图如何缩放大小

    transform:scale( x ):  语法为:transform: scale(x,y). 同时有scaleX, scaleY专门的x, y方向的控制.  例如:transform: scal ...

  3. 使用雪碧图Css Sprite精灵 | 加速网页响应速度

    什么是CSS Sprite精灵? 是用于前端的一种图片应用技术,通常情况,我们的开发的网页或许有很多张图片,假如在一个页面上有50多张小图片,这意味着浏览器要逐个下载50张图片.Css Sprite它 ...

  4. html中精灵图片路径,css中精灵图是什么意思?

    css中精灵图是什么意思?有什么用?下面本篇文章就来给大家介绍一下CSS 精灵图.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. css中精灵图是什么意思? css精灵图(sprit ...

  5. Mapbox Sprite精灵图生成

    出处:ATtuing - 博客园 ,https://www.cnblogs.com/ATtuing/p/9273391.html 1.什么是sprite文件 sprite 文件主要是将一堆小图生成一种 ...

  6. html精灵图坐标如何确定,CSS实现精灵图与字体图标

    精灵图: 在以前,每个图片资源都是独立的一张张图片,浏览器访问网站中的不同网页时是重复获取这一张张图片的,这代表需要访问很多次资源. 为了减少资源的访问次数,将多个常用的图片集合到一张图片中(网页的缓 ...

  7. css(精灵图和字体图标)

    1. 精灵图(重点) 1.1 为什么需要精灵图 ​ 为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度,出现了 CSS 精灵技术(也称 CSS Sprites.CSS 雪碧). 核心原理: ...

  8. css高级技巧(精灵图、字体图标、三角、vertical-align属性、溢出文字省略号等)

    css高级技巧 1.精灵图 1.1.为什么需要精灵图 一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送图片,造成服务器请求压力过大,这将大大降低页面的加载 ...

  9. CSS 6 精灵图 字体图标 CSS三角 用户界面样式 vertical-align 溢出文字省略号 常见布局技巧

    目录 1.精灵图 1.1为什么需要精灵图 1.2精灵图(sprites)的使用 1.3精灵图使用案例 2.字体图标 2.1字体图标的产生 2.2字体图标的优点 2.3字体图标的下载 2.4字体图标的引 ...

  10. CSS Sprites精灵图(雪碧图)的使用以及利用工具制作

    CSS Sprites的原理(图片整合技术)----精灵图(雪碧图) 原理: 将导航背景图片.按钮背景图片等有规则的合并成一张背景图,将多张图片合为一张整图,然后用background-positio ...

最新文章

  1. 看图说OpenGL之三:是什么在改变物体的颜色
  2. 测试网站访问速度的5个方法
  3. office 高效办公智慧树_华为发布首款商用台式机,打造未来高效智慧办公体验_企业...
  4. C/C++排序算法(1)直接插入排序
  5. C#下拉列表绑定数据库的使用三层实现
  6. L1-019. 谁先倒-PAT团体程序设计天梯赛GPLT
  7. Atitit 异常的实现原理 与用户业务异常
  8. element ui table样式
  9. 'C 语言' | 全排列解桥本分数式问题
  10. 远程服务器键盘变成快捷键?
  11. 各种语系的unicode对应以及local编码方式
  12. “全栈”工程师 请不要随意去做
  13. 集合20210801
  14. python opencv 图片缺陷检测!
  15. 启动模式,BOOT0和BOOT1详解
  16. 数字经济下的发展挑战
  17. [ZT] 金融恐怖与国际安全系列之2009国际大动荡的起始点
  18. 【NIO与Netty】Netty进阶
  19. java编程入门pdf_Java 8编程入门官方教程(第6版) [(美)Schildt H.] 中文完整pdf扫描版[233MB]...
  20. Android SDK 离线包安装

热门文章

  1. C/C++数组指针和指针数组
  2. Cannot resolve de.codecentric:spring-boot-admin-starter-server:2.4.0-SNAPSHOT
  3. [leetcode]110.平衡二叉树
  4. 后台服务出现明显“变慢”,谈谈你的诊断思路?
  5. linux 命令 cd -p,Linux_实例讲解Linux中cd命令切换目录的使用技巧,cd命令大家再熟悉不过了,bash sh - phpStudy...
  6. Pod资源管理(pod容器分类,k8s添加harbor私库,上传下载私库)
  7. native react 折线图_react native中使用echarts
  8. 树莓派各版本配置对比
  9. C语言面试题分享(3)
  10. 跟计算机断层扫描相关的技术,计算机断层扫描技术(简称PET)