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

CSS-精灵图片的使用(从一张图片中截图指定位置图标)目录一、名词解释二、使用难点三、使用步骤四、程序源码一、名词解释  在网页中,我们可以看到有很多的小图标,比如微博上的登录位置有很多这样的小图标。因为浏览器显示网页的所有内容都需要从我们自己的服务器进行下载,如果将这些图标分别存在服务器上,那么当需要显示的时候将会发出很多次请求–>响应–>下载,这样一来将会消耗大量的时间来下载这些小图标  所…

大家好,又见面了,我是你们的朋友全栈君。

目录

一、名词解释

二、使用难点

三、使用步骤

四、程序源码


一、名词解释

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

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

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

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

二、使用难点

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

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

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

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

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

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

三、使用步骤

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

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

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

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

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

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

  • 创建三个div

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

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

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

  •   显示效果

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

四、程序源码

<!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>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137487.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言qsort函数用法

    C语言qsort函数用法qsort函数简介   排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等。看名字都知道快速排序是目前公认的一种比较好的排序算法。因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用。这就是qsort函数(全称quicksort)。它是ANSIC标准中提供的,其声明在stdlib.h文件中,是根据二分法写的,其时间复杂度为n*log(n)  功能:

    2022年6月23日
    23
  • Python中线程同步与线程锁「建议收藏」

    Python中线程同步与线程锁「建议收藏」文章目录Python中线程同步与线程锁线程同步threading.Event对象threading.Timer定时器,延迟执行threading.Lock锁可重入锁RLockCondition条件锁,等待通知therading.Semaphore信号量threading.BoundedSemaphore有界信号量Python中线程同步与线程锁线程同步概念*线程同步,线程间协同,通过某种技…

    2022年6月21日
    27
  • pki体系包括哪些_十大育人体系是指什么

    pki体系包括哪些_十大育人体系是指什么PKI(公钥设施基础,PublicKeyInfrastructure)是一种标准化的密钥管理平台,能为网络应用提供加密和数字签名,以及密钥和证书管理体系的服务。在几乎所有介绍PKI的书籍或文章上,我们都能看到类似于这样的一句话:使用PKI就能保证网络应用的安全。那么,PKI体系的安全性到底怎样呢?就让我们来逐一列出PKI体系的十大安全隐患:风险1:证书持有者能被信任吗?在PKI中,

    2022年8月22日
    3
  • Java 二维数组的初始化

    Java 二维数组的初始化关于Java二维数组的初始化

    2022年5月21日
    45
  • 暴走周刊 5.27

    暴走周刊 5.27

    2021年7月7日
    103
  • Class类的getClassLoader()方法

    Class类的getClassLoader()方法packageminglu;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;publicclassHelloWorld{ publicstaticvoidmain(String[]args)throwsInstantiationException,

    2022年5月11日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号