`
fogtower
  • 浏览: 58793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CSS 技巧之一 CSS Sprite

    博客分类:
  • CSS
阅读更多

 

首先看下面的 CSS 代码:

li#nav-home a { background:url(../images/navs.png) no-repeat; }
li#nav-about a { background:url(../images/navs.png) 0 -28px no-repeat; }
li#nav-work a { background:url(../images/navs.png) 0 -56px no-repeat; }
li#nav-services a { background:url(../images/navs.png) 0 -84px no-repeat; }
li#nav-contact a { background:url(../images/navs.png) 0 -112px no-repeat; }

li#nav-home a:hover { background:url(../images/navs.png) 0 -13px no-repeat; }
li#nav-about a:hover { background:url(../images/navs.png) 0 -41px no-repeat; }
li#nav-work a:hover { background:url(../images/navs.png) 0 -69px no-repeat; }
li#nav-services a:hover { background:url(../images/navs.png) 0 -97px no-repeat; }
li#nav-contact a:hover { background:url(../images/navs.png) 0 -125px no-repeat; }

li#nav-home a.active { background:url(../images/navs.png) 0 -13px no-repeat; }
li#nav-about a.active { background:url(../images/navs.png) 0 -41px no-repeat; }
li#nav-work a.active { background:url(../images/navs.png) 0 -69px no-repeat; }
li#nav-services a.active { background:url(../images/navs.png) 0 -97px no-repeat; }
li#nav-contact a.active { background:url(../images/navs.png) 0 -125px no-repeat; }

 

是不是看的眼花缭乱,不知所云,其实这段css很简单,就是实现所谓的 CSS Sprite 技术。

Why


利用CSS Sprites能很好地减少了网页的http请求,从而大大的提高了页面的性能。
传统的CSS结构,客户端每显示一张图片都会向服务器发送请求,所以,图片越多请求次数越多,造成延迟的可能性也就越大。
而 CSS Sprite 允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,只需要一次加载这个大图即可。

运用场景:
1. 图片限制
    典型如文本编辑器,小图标特别多,打开时一张张跑出来,给用户的感觉很不好。如果能用一张图解决,则不会有这个问题。
2. 单图转滚(这就是前面那一大段CSS的用处)
    触发切换图片的需求,传统方案得重新请求新图片,因为网络问题经常造成停留或等待。如果能把多种状态合并成一张图,就能完美解决。
3. 延长背景
    如果图片的某边可以背景平铺无限延长,则不需要每个角、每条边单独搞出来,图片能少一个就少一个。其实,这个理论还可以扩展到四角容器里,好处是能大大简化HTML Structure。


How


CSS Sprite 其实就是 利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字能精确的定位出背景图片的位置。

 

background:url(../images/navs.png) 0 -13px no-repeat;

 
Notice


使用 CSS Sprite 要注意一点,IE6下偏移的位置于其他的浏览器不一致,可能需要单独为其设定不同的值,这个问题我遇到好几次了,只能说IE6太变态,连个背景图片的位置都跟别人不一样。

 

 

查看Demo,请点击这里

 

分享到:
评论

相关推荐

    css sprite示例源码

    CSS Sprite是一种网页图像整合技术,它能够有效地减少网页的HTTP请求,从而提高页面加载速度,降低服务器负担。在网页设计中,特别是在响应式设计中,CSS Sprite被广泛使用。本示例源码将深入探讨这一技术及其应用。...

    CSSSprite示例代码

    **CSS Sprite技术详解** 在网页设计中,CSS Sprite(精灵图)是一种常见的优化网页加载速度的方法,它将多个小图像合并到一个大图中,通过CSS的定位来显示需要的部分。这种技术尤其适用于那些需要频繁加载的小图标...

    Css Sprite

    CSS Sprite,也被称为精灵图或雪碧图,是一种在网页设计中广泛应用的优化图像加载的技术。它的主要目的是减少网页HTTP请求的数量,从而提高页面加载速度,优化用户体验。通过将多个小图标或者背景图片整合到一张大图...

    css sprite 自动生成工具

    CSS Sprite是一种网页图像优化技术,它将多个小图合并到一张大图中,减少HTTP请求,从而加快网页加载速度。这种技术在Web开发中被广泛使用,尤其在处理背景图像时,可以显著提升页面性能。标题提到的"css sprite ...

    css sprite 工具

    CSS Sprite是一种网页优化技术,用于减少HTTP请求的数量,从而提高页面加载速度。它将多个小图合并成一张大图(通常称为精灵图),然后通过CSS定位显示需要的部分。这种技术在网页设计和前端开发中广泛应用,尤其...

    CssSprite雪碧图

    为了优化网页性能,提高页面加载速度,一种名为“CssSprite”(雪碧图)的技术应运而生。雪碧图是一种将多个小图标合并到一张大图中的方法,通过CSS定位来显示需要显示的部分,从而减少了HTTP请求的数量,进而提升了...

    css sprite 雪碧图生成小程序

    压缩包中的`CssSprite.exe`文件是一个可执行程序,很可能是上述开源项目编译后的Windows版本。使用这个程序,用户可以直接在命令行中输入命令,将一组图标文件合并为雪碧图,并自动生成相应的CSS代码,方便集成到...

    CSS Sprite自动生成工具 CSS Sprite贴图制作工具

    CSS Sprite自动生成工具是一款可以导入CSS背景图片,就可以自动生成CSS sprite代码和一张整的CSS 贴图图片的工具,工具小巧方便,精确到1px,网格吸附。非常方便制作CSS sprite贴图。

    前端开源库-css-sprite-loader

    在Web性能优化中,CSS Sprite技术是一种常见的方法,它将多个小图合并成一张大图(通常称为sprite图像),以此减少HTTP请求,提高页面加载速度。CSS Sprite Loader就是帮助开发者实现这一目标的利器。 ### CSS ...

    Sketch-CSS-Sprite-Mixin, 在草图中,生成一个 CSS Sprite Mixin到剪贴板的代码.zip

    Sketch-CSS-Sprite-Mixin, 在草图中,生成一个 CSS Sprite Mixin到剪贴板的代码 绘制 CSS Sprite MixinSketch中生成 scss,LESS 和手写笔的mixin的代码。 运行插件时,代码被复制到剪贴板。子画面名称是顶级图层名,...

    CSS3 Sprite 技术实现僵尸行走动画

    行走动画是CSS3动画的经典类型之一,今天要分享的这款CSS3僵尸行走动画与之前介绍的纯CSS3人物行走动画和纯CSS3实现大象走路动画不同,它是利用CSS Sprite技术实现的,也就是在同一张图片中绘制僵尸行走的每一帧,...

    雪碧图工具CssSprite.exe

    "雪碧图工具CssSprite.exe"是一个专为生成雪碧图并自动生成对应的CSS代码而设计的软件,使得这一过程变得更加便捷高效。 在网页开发中,每个单独的小图都需要一个HTTP请求来获取,当页面中包含大量小图时,这些请求...

    CssSprite(雪碧图制作工具)

    其中,一种常见的优化策略就是使用CssSprite技术,也就是我们常说的“雪碧图”。雪碧图是一种将多个小图标合并到一张大图中,然后通过CSS定位来显示需要的图标的方法。这样做的好处是可以减少HTTP请求的数量,从而...

    css sprite 组合图 定位 生成

    CSS Sprite是一种网页图像优化技术,它将多个小图像合并到一张大图(组合图)中,然后通过CSS的背景定位来显示需要的部分。这样做的主要目的是减少HTTP请求次数,提高页面加载速度,优化用户体验。当你在网页设计中...

    css sprite原理优缺点及使用

    CSS Sprite,中文常称为“CSS精灵”,是一种常见的前端技术,用于优化网站加载速度和用户体验。它通过将多个小图片合并为一张大图,并借助CSS背景定位来实现原本需要多张图片才能完成的效果。这种方式能够显著减少...

    css sprite

    css精灵图生成软件,自动生成,并给出小图的backgrount-positon的值。比较好用

    CSS3 Sprite僵尸行走动画特效.zip

    【CSS3 Sprite僵尸行走动画特效】是一种利用CSS3的先进特性来实现的动态效果,它巧妙地结合了精灵图(Sprite)技术和CSS3的动画功能,以创建出一个逼真的僵尸行走循环动画。在Web开发中,CSS3 Sprite技术是为了减少...

    CssSprite.zip

    CSS Sprite,又称为CSS雪碧图或CSS精灵,是一种常见的网页图像优化技术。在网页设计中,为了减少HTTP请求的数量,提高页面加载速度,设计师们通常会将多个小图像合并成一张大图,然后通过CSS定位来显示所需的图像...

    CssSprite雪碧图制作工具

    为了简化这一过程,出现了各种CssSprite雪碧图制作工具。这些工具提供了便捷的界面和自动化处理,使得开发者能够轻松地将分散的图标整合成一张雪碧图,并自动生成相应的CSS代码。 1. **工具选择** - **在线工具**...

    css sprite雪碧图生成小工具 v4.3

    css sprite 雪碧图生成小程序,已在github上开源,地址:https://github.com/iwangx/sprite ,请需要的朋友注意版本更新,下载最新版。 博客园地址:http://www.cnblogs.com/wang4517/

Global site tag (gtag.js) - Google Analytics