关于精灵图

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

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

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

具体步骤:
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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库概念结构设计_数据库概念结构设计怎么写

    数据库概念结构设计_数据库概念结构设计怎么写一、概念模型在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,然后才能更改、更准确地用某一数据库管理系统实现这些需求。概念模型的主要特点:1.能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是现实世界的一个真是模型。2.易于理解,可以用它和不熟悉计算机的用户交换意见。用户的积极参与是数据库设计成功的关键。3.易于更改,当应用环境和应用要求改变时容易对概念模型修改和扩充。4.易于向关系、网状、层次等各种数据模型转换…

    2022年10月12日
    6
  • java8 小技巧保证分组groupingBy后排序不变

    java8 小技巧保证分组groupingBy后排序不变问题:遇到一个小问题,查询出来一组数据后,按照其中的属性进行groupBy分组,分组后要保证顺序不变。排查首先去api中查找解决//一个参数publicstatic<T,K>Collector<T,?,Map<K,List<T>>>groupingBy(Function<?superT,?ex…

    2022年8月21日
    11
  • Win7如何简单的关闭445端口及445端口入侵详解

    Win7如何简单的关闭445端口及445端口入侵详解最近永恒之蓝病毒攻击了很多教育网的同学,下面我们就来看一下如何关闭445端口根据网络安全机构通报,这是不法分子利用NSA黑客武器库泄漏的“永恒之蓝”发起的病毒攻击事件。“永恒之蓝”会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。由于以前国内多次爆发利用445端口传播的蠕虫,运

    2022年6月15日
    128
  • python一维数组转置_python矩阵转置[通俗易懂]

    python一维数组转置_python矩阵转置[通俗易懂]python中的矩阵转置首先,数据应该是np.asarray型,然后,使用numpy.transpose来操作。transpose方法只能处理高维数组(>1),如果处理一维数组会报错;对于二维数组:data1=np.arange(4).reshape((2,2))print(data1)>>[[01][23]]data1=np.transpose(data1)print(data1)>…

    2022年5月5日
    212
  • 数据可视化软件在大数据时代的局限性「建议收藏」

    数据可视化软件在大数据时代的局限性「建议收藏」如今,数据可视化软件风靡起来,很多企业认为数据可视化软件是启用先进分析技术的入口。但对一些应用而言,情况并不是这样的。纽约市的非营利组织DonorsChoose致力于跟踪和分析当地学校获得的财务捐助。在它试图为学校管理者、当地国会议员和记者出具一份报告时,它意识到数据可视化软件并不是万能的。乍一看,数据可视化系统对这种非技术组织来说应该是最好的选择了,不过该组织的数据科学家VladDubovsk…

    2022年9月25日
    4
  • BaseDao.util(虎大将军)

    BaseDao.util(虎大将军)

    2021年7月5日
    72

发表回复

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

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