关于精灵图

关于精灵图之前就发现一些网站吧所有的小图标拼接在一张图片中,但是一直不知道这是怎么做到的,今天特地了解了一下,才知道这种用法叫做精灵图。他的优点是可以减少浏览器请求的次数,把所有图片拼接在一张图中就只需要请求一次,当浏览器需要用到图片时再从大图片中解析。这样可以加快访问的次数。先来看看效果图:拼接的图片:他的原理是,先规定好每个小图标的大小,创建一个和小图标大小相同的容器,再通过移动背景图片的方法将…

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

之前就发现一些网站把所有的小图标拼接在一张图片中,但是一直不知道这是怎么做到的,今天特地了解了一下,才知道这种用法叫做精灵图。他的优点是可以减少浏览器请求的次数,把所有图片拼接在一张图中就只需要请求一次,当浏览器需要用到图片时再从大图片中解析。这样可以加快访问的次数。先来看看效果图:
在这里插入图片描述
拼接的图片:
在这里插入图片描述
他的原理是,先规定好每个小图标的大小,创建一个和小图标大小相同的容器,再通过移动背景图片的方法将大图中需要的部分暴露在这个容器中。就是说这张图片就像被一块布遮住,只是在想要的地方留了一个空,好让背景图片暴露出来,这样只要将将背景图片一道合适的位置就可以只显示我们想要的部分。

具体步骤:
1,创建合适大小的容器
2,将拼接的大图作为容器的背景,并设置为no-repeat
3,改变背景的位置

对于改变背景的位置我们需要知道小图标在大图片的的坐标(以大图的左上角为原点),例如如果小图标在大图中的坐标是(10,20),那么将背景图片向左移动10px,向上移动20px就可以抵消小图标在大图的位置。
获取这个坐标可以用PS中的切片工具,将小图标选择出来后右击选择编辑即可看到小图标的坐标
在这里插入图片描述
完整源码如下:

<html>
    <head>
        <style>
        *{
            margin:0;
            padding:0;
        }
        .div0{
            margin:10px;

        }
        .demo1,.demo2,.demo3,.demo4,.demo5,.demo6{
            display:inline-block;
            width:17px;
            height:17px;
            background-color:transparent;
            background-image:url(ico.png);
            background-repeat:no-repeat;
        }
        .demo1{ background-position:-38px -37px;}
        .demo2{ background-position:-62px -37px;}
        .demo3{ background-position:-86px -37px;}
        .demo4{ background-position:-110px -37px;}
        .demo5{ background-position:-134px -37px;}
        .demo6{ background-position:-159px -37px;}
        ul{
            list-style:none;
        }
        ul li {
            margin:10px;
        }

        </style>
    </head>

    <body>
    <div class="div0">
        <ul>
            <li><div class="demo1"></div> 图标1</li>
            <li><div class="demo2"></div> 图标2</li>
            <li><div class="demo3"></div> 图标3</li>
            <li><div class="demo4"></div> 图标4</li>
            <li><div class="demo5"></div> 图标5</li>
            <li><div class="demo6"></div> 图标6</li>
        </ul>
    </div>

    </body>
</html>

原文作者: https://blog.csdn.net/twilight_karl/article/details/54914866

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

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

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


相关推荐

  • 手写IoU(u音标手写怎么写)

    IoU(IntersectionoverUnion)矩形框的IoU计算:矩阵T的左下角坐标,右上角坐标;矩阵G的左下角坐标,右上角坐标;在确定坐标的情况下,与是可知的常量,所以,我们只需要求解即可。这里我们先来看一下水平方向上的情况:从上述的三种情况中我们可以看出:当有重叠或者是内含的情况时,我们可以通过计算得到重叠部分的长度….

    2022年4月15日
    70
  • linux下解压rar压缩文件

    linux下解压rar压缩文件在windows下我们压缩解压文件通常后缀为rar,在linux下我们压缩解压文件通常后缀为tar默认在linux下我们不能解压压缩rar文件我们可以下载rarlinux安装包实现解压压缩后缀为rar的包下载地址:WinRARarchiver,apowerfultooltoprocessRARandZIPfiles安装~]#wgethttps://www.rarlab.com/rar/rarlinux-x64-610.tar.gz~]#tar-zxv.

    2022年7月11日
    14
  • UML类图总结(浅显易懂实用)

    UML类图总结(浅显易懂实用)UML类图的作用是描述程序中类的信息及各个类之间的关系。所有的面向对象(ObjectOriented)语言都离不开类的概念,理解了程序中类的设计也就理解了程序的一半。但类的具体描述方式在各个类中都不一样,UML类图的提出是为了能够脱离语言的限制,抽象地描述各个类的信息及各个类之间的关系。这是UML类图的作用。一、类的基本表示方式在UML类图中,每一个矩形代表一个类。我们举一个简单的例子:这是一个…

    2022年7月12日
    15
  • Ai智慧社区_AI社区医院

    Ai智慧社区_AI社区医院前言前不久进入了智慧社区、智慧园区和智慧校园行业,于是打算就智慧社区下的智慧小区写两篇文章,一篇是介绍智慧小区,一篇是关于如何构建智慧小区管理系统。本篇是智慧小区文章的第一篇,纯介绍性,如果对智慧小区有一定了解的可以移步。为什么我会讲智慧小区而非智慧社区,原因之一是智慧社区有很多社会属性的单位,比如医疗卫生、派出所、城管、社区居委会等等,涉及到政务、治安、党建、医疗、市政等很多方面,…

    2022年10月17日
    3
  • 她不在

    她不在她不在

    2022年4月23日
    72
  • oracle查询结果替换指定字符串_oracle按字符截取

    oracle查询结果替换指定字符串_oracle按字符截取1、拼接字符串格式一:可以使用”||”来拼接字符串select’拼接’||’字符串’asstrfromdual格式二:通过concat()函数实现selectconcat(‘拼接’,’字符串’)asstrfromdual注:oracle的concat函数只支持两个参数的方法,即只能拼接两个参数,如要拼接多个参数则嵌套使用concat可实现,如:selectconcat(concat(‘拼接’,’多个’),’字符串’)fromdual2.1、截取字符串

    2022年9月19日
    4

发表回复

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

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