CSS Sprites技术的优缺点

2024-08-27 13:32

本文主要是介绍CSS Sprites技术的优缺点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.CSS Sprites的优点

(1)利用CSS Sprites能很好地减少网页的http请求,从而大大提高了页面的性能,这也是CSS Sprites最大的优点;

(2)CSS Sprites能减少图片的字节,曾经多次比较过,把3张图片合并成1张图片的字节总是小于这3张图片的字节总和。


2.CSS Sprites的缺点

(1)在图片合并时,要把多张图片有序的、合理的合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景。在宽屏及高分辨率下的自适应页面,如果背景不够宽,很容易出现背景断裂;

(2)CSSSprites在开发的时候比较麻烦,你要通过photoshop或其他工具测量计算每一个背景单元的精确位置,这是针线活,没什么难度,但是很繁琐;幸好腾讯的鬼哥用RIA开发了一个CSS Sprites样式生成工具,虽然还有一些使用上的不灵活,但是已经比photoshop测量来的方便多了,而且样式直接生成,复制,拷贝就OK!  

(3)CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的CSS,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动CSS。


3.CSS Sprites实例教程解释介绍

首先这些图标素材是放在同一张图片上(PS拼合),然后实现成列表类布局,列表每个前图标不同。使用div css sprites实现此布局(其实使用background样式实现)。

首先此列表布局我们使用ul li列表布局,每个li站一行排版,对ul设置padding实现四周内容与边框一定间距效果,因为每个li前面图标不同,但此背景图片是拼合在一张图片上,所以这里做li里开始使用span标签实现这个不同图标效果,每个图标不同为了区别span所以对span设置不同class,不同class对应设置定位相应的图标。

3、实例教程准备
1)、初始化模板使用:为了兼容各大浏览器,仍然这里使用DIVCSS5提供初始化模板,在此模板基础上修改设置符合本实例CSS样式。
2)、图标素材,这里直接为大家提供拼接好的图标素材图片一张,命名为“ico.png”,如下图,可直接另存为保存使用。

sprites图片素材
sprites案例图片素材(直接点击图片鼠标右键可以另存为保存使用)

4、先布局出效果,再css sprites设置不同背景图标样式
1)、关键html代码:

 
  1. <ul class="Sprites"> 
  2.     <li><span class="a1"></span><a href="#">WORD文章标题</a></li> 
  3.     <li><span class="a2"></span><a href="#">PPT内容标题</a></li> 
  4.     <li><span class="a3"></span><a href="#">Excel内容标题</a></li> 
  5.     <li><span class="a4"></span><a href="#">PDF内容标题</a></li> 
  6.     <li><span class="a5"></span><a href="#">文本文档标题</a></li> 
  7. </ul> 

为了区别不同效果对span加入不同class。
2)、关键CSS代码

 
  1. ul.Sprites{ margin:0 auto; border:1px solid #F00; width:300px; padding:10px;} 
  2. ul.Sprites li{ height:24px; font-size:14px;line-height:24px; text-align:left; overflow:hidden} 
  3. ul.Sprites li span{ float:left; width:17px;padding-top:5px;height:17px;  
  4. overflow:hidden;background:url(ico.png) no-repeat} 
  5. ul.Sprites li a{ padding-left:5px} 

3)、效果截图

未使用sprites技术引入背景图片效果截图
未使用sprites技术引入背景图片效果截图

4)、使用css sprites设置定位背景完整关键CSS代码

 
  1. ul.Sprites{ margin:0 auto; border:1px solid #F00; width:300px; padding:10px;} 
  2. ul.Sprites li{ height:24px; font-size:14px;line-height:24px; text-align:left; overflow:hidden} 
  3. ul.Sprites li span{ float:left; width:17px;padding-top:5px;height:17px;  
  4. overflow:hidden;background:url(ico.png) no-repeat} 
  5. ul.Sprites li a{ padding-left:5px} 
  6. ul.Sprites li span.a1{ background-position: -62px -32px} 
  7. ul.Sprites li span.a2{ background-position: -86px -32px} 
  8. ul.Sprites li span.a3{ background-position: -110px -32px} 
  9. ul.Sprites li span.a4{ background-position: -133px -32px} 
  10. ul.Sprites li span.a5{ background-position: -158px -32px} 

最终实现浏览器效果测试效果图

css sprites案例效果截图
div css sprites案例效果截图

5)、css sprites关键代码与解释

 
  1. ul.Sprites li span.a1{ background-position: -62px -32px} 
  2. ul.Sprites li span.a2{ background-position: -86px -32px} 
  3. ul.Sprites li span.a3{ background-position: -110px -32px} 
  4. ul.Sprites li span.a4{ background-position: -133px -32px} 
  5. ul.Sprites li span.a5{ background-position: -158px -32px} 

首先对ul.Sprites li span引入背景
ul.Sprites li span{ background:url(ico.png) no-repeat} 给span设置css背景图片。
再分别对不同span class设置对于图标背景定位具体值
ul.Sprites li span.a1{ background-position: -62px -32px}设置背景图片作为对应盒子对象背景后向左“拖动”62px,向上“拖动”32px开始显示此背景图标
ul.Sprites li span.a2{ background-position: -86px -32px}设置背景图片作为对应盒子对象背景后向左“拖动”86px,向上“拖动”32px开始显示此背景图标
ul.Sprites li span.a3{ background-position: -110px -32px}设置背景图片作为对应盒子对象背景后向左“拖动”110px,向上“拖动”32px开始显示此背景图标
ul.Sprites li span.a4{ background-position: -133px -32px}设置背景图片作为对应盒子对象背景后向左“拖动”133px,向上“拖动”32px开始显示此背景图标
ul.Sprites li span.a5{ background-position: -158px -32px}设置背景图片作为对应盒子对象背景后向左“拖动”158px,向上“拖动”32px开始显示此背景图标

关键:背景background-position有两个数值,前一个代表靠左距离值(可为正可为负),第二个数值代表靠上距离值(可为正可为负)
背景background-position有两个数值可以为正可以为负,当为正数时,代表背景图片作为对象盒子背景图片时靠左和考上多少距离多少开始显示背景图片;当为负数时代表背景图片作为盒子对象背景图片,将背景图片拖动超出盒子对象左边多远,拖动超出盒子对象上边多远开始显示此背景图片。

6)、背景图片定位数值获取
向左“拖动”,向上“拖动”这些这PS获取图文教程

利用切片工具获取对应小图标在图片文件中位置
利用切片工具获取对应小图标在图片文件中位置

通过ps软件利用切片工具画出要显示图片区域后,双击即可弹出“切片详细卡”,可以得到X(靠左距离值),Y(靠上距离值)即可获得对应图片素材在大图中位置。


示例转自:http://www.divcss5.com/rumen/r767.shtml

这篇关于CSS Sprites技术的优缺点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111806

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled