目录

一、名词解释

二、使用难点

三、使用步骤

四、程序源码


一、名词解释

在网页中,我们可以看到有很多的小图标,比如微博上的登录位置有很多这样的小图标。因为浏览器显示网页的所有内容都需要从我们自己的服务器进行下载,如果将这些图标分别存在服务器上,那么当需要显示的时候将会发出很多次请求-->响应-->下载,这样一来将会消耗大量的时间来下载这些小图标

所以为了提高网页响应速度,避免这个小图标加载耗费大量时间,于是将这些小图片全部放到一张图片上,例如下面的图是利用浏览器调试工具(通常为F12打开)从微博的请求中找到的,大家可以直接下载使用

二、使用难点

精灵图片的使用难点在于如何在这一张图片中定位到我们需要的部分,首先我们需要理解三个坐标:浏览器坐标、组件坐标、图片坐标,每个组件都有自己的坐标点,左上角为原点,往上y值为负数,越来越小;往左x为负数,越来越小

假如我们的组件的宽高分别为16px,图片宽高为200px,我们发现如果将图片作为组件的背景图片,将会从图片0,0左边点开始显示,只能显示图片的16px,因为组件只有这么大,多余的图片就被舍弃了。如下图片当图片原点和组件原点重叠的时候,组件只能显示图片的16px大小

假如此时我们想要截取图片中第二列中的亮的vip6,此时图片需要分别往左移动和往上移动一定距离如下。原来图片的坐标和组件的坐标重叠都是0,0,此时图片往上移动,相当于y减小了100px(假设值),此时y坐标为-100px;往左移动24px,此时x坐标为-24px,所以如果我们需要获取vip6图标,图片相对于组件坐标往左移动24px和往上移动100px就能取到

三、使用步骤

1.我们需要用到CSS中两个与背景图片有关的属性

  • background-image: url("图片地址");

  • background-position: x坐标 y坐标;

2.现在我们以取vip3和4以及微博认证为例

3.创建三个div,宽高分别等于vip3和4以及微博认证大小,如vip3和4宽高都为16px,微博认证x及y坐标分别为95px 35px

  • 创建三个div

  • 指定宽高、背景图片、图标所在位置

  • 显示效果

四、程序源码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>index</title><style>div{width: 16px;height:  16px;background-image: url("images/icon.png");}/* 从精灵图片中获取需要的图片 */.vip3{              /* 获取vip3 */background-position: -24px -48px;}.vip4{              /* 获取vip4 */background-position: -24px -72px;}.auth{              /* 获取微博认证 */width: 95px;    /* 微博认证和vip大小不一样,需单独指定 */height: 35px;background-position: -425px -50px; }</style>
</head>
<body><!-- 设置三个div显示 --><div class="vip3"></div><div class="vip4"></div><div class="auth"></div>
</body>
</html>

CSS-精灵图片的使用(从一张图片中截图指定位置图标)相关推荐

  1. java word添加图片_Java 替换word文档文字并指定位置插入图片

    先说下 需要的依赖包 org.apache.poi poi-excelant 3.12 org.apache.poi poi-scratchpad 3.12 org.apache.poi poi-oo ...

  2. java word替换图片_Java 替换word文档文字并指定位置插入图片

    先说下 需要的依赖包 org.apache.poi poi-excelant 3.12 org.apache.poi poi-scratchpad 3.12 org.apache.poi poi-oo ...

  3. 在access窗体中加图片_如何在Access窗体中显示指定路径的图片

    在Access中,如果把图形对象以OLE格式的字段保存,那么在窗体中可以直接显示出图片来.但是这样做有以下不足:一.需要将图片逐一插入到表中,工作量太大.二.使数据库文件变得庞大.三.相同的图片文件, ...

  4. word中在指定位置插入图片

    当然得在word中建立一些书签了,作用就是定位.再就是要有Microsoft Word 11.0 Object引用 这是段是精华 //添加应用 using Word=Microsoft.Office. ...

  5. PDF中在指定位置插入图片

    public static void pdfInsertPhoto()throws Exception{//pdf路径File file = new File("D:\\file\\888. ...

  6. css sprites——CSS精灵

    简介 CSSSprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅 ...

  7. css精灵技术用像素定位,css精灵图怎么定位

    精灵图利用background-image,background-repeat,background-position的组合进行背景定位,background-position属性可以用数字能精确的定 ...

  8. pdf横向打印java_java通过html生成pdf,支持css和图片以及横向打印

    项目当中通常会有生成pdf的需求,pdf的排版尤为重要!通过html生成,最为方便. 1. 依赖 工具使用freemarker模板进行数据渲染 org.freemarker freemarker 2. ...

  9. webpack打包css image,webpack 打包CSS 引入图片

    加载css 安装style-loader, css-loader npm install style-loader css-loader --save-dev 配置webpack.config.js文 ...

最新文章

  1. net core mysql 连接池_EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽
  2. jQuery 淡入淡出
  3. 内核参数 linux dd,内核模块指定参数方式
  4. 【Python基础教程】变量的作用域详解
  5. springboot整合redis集群master宕机后连接超时
  6. Opera 发布新技术 Opera Unite
  7. 优化函数html代码,CSS代码优化方法
  8. 理解并从头搭建redis集群
  9. iis下php 500错误
  10. 计算机原理基础-原反补
  11. 核fisher matlab,使用Fisher法matlab结合P值?
  12. Scheme学习系列一 :源码安装Gambit
  13. PDF转换为其他格式的方法
  14. cesium 取消光晕
  15. mac上安装搭建Appium环境
  16. 企业IT基础架构设计概要
  17. 如何一次性保存html图片大小,保存网页图片的几种方法(批量)
  18. 微信会员卡跳转小程序实现
  19. Qt 中信号和槽机制
  20. prometheus + grafana 对 springboot 项目进行监控

热门文章

  1. arduino yun 京东_ArduinoYun教程之配置Arduino Yun环境
  2. 【OpenCV 例程 300篇】222. 特征提取之弗里曼链码(Freeman chain code)
  3. ker矩阵是什么意思_用初等变换求逆矩阵的小小解释
  4. java 奥运五环_[求助]求奥运五环 java代码
  5. python怎么设计奥运五环_如何用Python中turtle画笔制作奥运五环
  6. 英特尔400系列服务器芯片组,Intel 400晶片组家族、对应Z490主机板型号曝光,搭配10代Comet Lake-S处理器必备 – 穷极领域...
  7. 符合这8种性格的人都长寿
  8. java像素鸟素材_像素鸟FlappyBird素材(图片+音乐)
  9. USACO--Broken Necklace(C语言)beads
  10. 读书笔记014:《伤寒论》- 足厥阴肝经