当前位置: 首页 > news >正文

网页中多个图标在一张图片上,使用css将各图标显示

原文: 网页中多个图标在一张图片上,使用css将各图标显示

现在的网页中显示很多图标算是常态,发现项目中页面上用到的图标都是单个图标单个文件,用的时候直接往页面上挂,这确实很常态。

如果,网站是挂在外网上,或者网速过低,又大量使用图标的情况下,由于浏览器和服务器的并发连接数是受限的,通常是4~8个,那么图标显示过慢或者超时的情况就会发生。

当然了,像采用CDN,或者按照浏览器的并发数对图片文件进行域名分散存储处理也是再好不过的,但不是都有这样的条件。

一般都会把图标文件做的尽可能小,尽管如此,1张50k的文件比起50张1k文件下载起来还是很有优势的。

那么,要如何将一个图片中的单个图标显示在页面中,因为没有切分图片的功能。

 

首先,假设我们的图标图片是tree view中常用的:

 

做一个简单的页面,放两个div,需要在这两个div上分别显示文件夹和文件图标。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <style>        </style>
    </head>
    <body>
        <div></div>
        <div></div>
    </body>
</html>

 

显示方法很简单,就是将元素的大小设成图标的大小,图片作为元素的背景,设置图片的left和top让对应的图标被显露出来。

定义一个默认的样式,规定元素的大小,这里的图标是32*32,照样设置元素的大小。

            .tree-default{
                width:32px;
                height:32px;
            }

定义文件夹图标的显示样式,就是讲图标图片作为背景,按照图标的位置调整left和top坐标值。

            .tree-folder{
                background: url("images/tree_icons_32px.png") -260px -4px no-repeat;
            }

定义文件图标的显示样式,调整文件图标所在的位置。

            .tree-file{
                background: url("images/tree_icons_32px.png") -100px -68px no-repeat;
            }

再给元素设上样式。

        <div class="tree-default tree-file"></div>
        <div class="tree-default tree-folder"></div>

完成后的效果:

 

这样的处理也不是没有条件,单张图片也要尽可能的压缩,不是所有的图标都在一张图片上,可将常用的放在一张图片上,如果过多可分成多张图片放置。

 

所有代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <style>
            .tree-default{
                width:32px;
                height:32px;
            }

            .tree-file{
                background: url("images/tree_icons_32px.png") -100px -68px no-repeat;
            }

            .tree-folder{
                background: url("images/tree_icons_32px.png") -260px -4px no-repeat;
            }

        </style>
    </head>
    <body>
        <div class="tree-default tree-file"></div>
        <div class="tree-default tree-folder"></div>
    </body>
</html>

 

相关文章:

  • C++容易忽略的细节
  • vim+ctags+cscope 常用技巧和命令
  • IT公司100题-13-求链表中倒数第k个结点
  • Log aggregation has not completed or is not enabled.
  • linux安装scikit-learn
  • JavaMail:搜索、过滤接收邮件,删除邮件
  • 对JS继承的一点思考
  • 成为一名优秀的Developer的书单
  • HDU ACM 2586 How far away ?LCA-gt;并查集+Tarjan(离线)算法
  • php正则获取网页标题、关键字、网页描述代码
  • centos 6.4配置samba+ldap认证
  • 理解并取证:以太通道的动态协商机制的工作原理
  • Linux内核跟踪之trace框架分析【转】
  • 转 C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果)...
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • php的引用
  • 「面试题」如何实现一个圣杯布局?
  • 【Leetcode】104. 二叉树的最大深度
  • CSS盒模型深入
  • css选择器
  • Javascript 原型链
  • LeetCode29.两数相除 JavaScript
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • vue--为什么data属性必须是一个函数
  • 世界上最简单的无等待算法(getAndIncrement)
  • 数据科学 第 3 章 11 字符串处理
  • ionic异常记录
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 阿里云重庆大学大数据训练营落地分享
  • 国内开源镜像站点
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • $.ajax()方法详解
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (十五)使用Nexus创建Maven私服
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)我也是一只IT小小鸟
  • (转载)Linux 多线程条件变量同步
  • ***详解账号泄露:全球约1亿用户已泄露
  • *p++,*(p++),*++p,(*p)++区别?
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .gitignore文件_Git:.gitignore
  • .gitignore文件设置了忽略但不生效
  • .NET 8.0 发布到 IIS
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • @Autowired多个相同类型bean装配问题
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [ABC294Ex] K-Coloring
  • [ajaxupload] - 上传文件同时附件参数值
  • [BeginCTF]真龙之力